微信扫描二维码登录第三方平台

2024-09-06 10:58

本文主要是介绍微信扫描二维码登录第三方平台,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

嗯。。。。。。

最近做了一个微信扫码登陆第三方平台功能,说下步骤就行,反正原理你们网上直接百度,我这里写了,估计也没几个人有耐心看

第一步 生成一个链接  

https://open.weixin.qq.com/connect/qrconnect?appid=xxxxxxxxf&redirect_uri=xxxxxxxxxxxx&response_type=code&scope=snsapi_login&state=#wechat_redirect

访问这个链接的时候,就会返回一张二维码 xxxxx地方是参数,,appid需要你开通微信开放平台,开通之后就会有,还有一个secret,,这2个都需要,这里需要注意,微信还有一个公众平台也有这2个参数,他们是不一样的。你开发的时候要区分是开放平台还是公众平台,不要掉进坑里 ,redirect_uri=这个是说,你扫描二维码之后,要跳转的地址,这里跳转回带上code和state 2个参数,所以你编写的时候需要这样



@RequestMapping(value = "/code", params = { "code", "state" }, method = RequestMethod.GET)
@ResponseBody
public Object getAuth(HttpServletRequest request, @RequestParam String code, @RequestParam String state)
throws JSONException {

         ///这里第一步,首先需要通过appid,secret ,code 去获取token 

                https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + APPID + "&secret="
      + SECRET + "&code=" + code + "&grant_type=authorization_code";//获取token的地址,

这里我使用的是 apache下的httpclient


DefaultHttpClient client = new DefaultHttpClient();


try {


   HttpGet getRequest = new HttpGet(access_token_url);
   HttpResponse response = client.execute(getRequest);


   if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
      String strResult = EntityUtils.toString(response.getEntity());


      logger.info("-------jsonResult-------" + strResult);


      JSONObject jsonResult = new JSONObject(strResult);


   
if (jsonResult.has("unionid")){
   unionid= (String) jsonResult.get("unionid");
}

这个参数非常的重要,但是我也懒得讲了,你们自己百度吧,就是要记住一点,这个参数是唯一的,

}

然后经过你后台的鉴权通过之后,跳转,至于鉴权方式,就看你自己额

你可以通过 unionid 去数据库寻找用户,,智力需要说明,,unionid是之前就获取到了用户的,然后初始化到数据库了得,至于怎么查找unionid,需要通过openid


https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN。这个是获取unionid 的,至于这个openid,你获取token 的时候,就会有的,反正你写个脚本,把他们保存数据库,当作初始化,

if (SecurityUtils.getSubject().isAuthenticated()) {
logger.info("  二维码登录成功       :   " + openid);
   logger.info("  二维码登录成功  username     :   " + (String) SecurityUtils.getSubject().getPrincipal());
return new ModelAndView("redirect:x'x'x'x'x'x'x'x'x");
}

这篇关于微信扫描二维码登录第三方平台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141815

相关文章

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示