微信扫码登录(1)---扫码登陆流程讲解、获取受权登录二维码

扫码登陆流程讲解、获取受权登录二维码

具体流程能够看微信官网的扫码登陆文档前端

地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CNjava

其实官方文档已经讲的很是清楚并且讲的也很明白。git

 项目github地址https://github.com/yudiandemingzi/spring-boot-wechat-logingithub

1、扫码登陆流程讲解

一、首先准备工做

网站应用微信登陆是基于OAuth2.0协议标准构建的微信OAuth2.0受权登陆系统。web

在进行微信OAuth2.在进行微信OAuth2.0受权登陆接入以前,在微信开放平台注册开发者账号,并拥有一个已审核经过的网站应用,并得到相应的AppIDAppSecretspring

申请微信登陆且经过审核后,可开始接入流程。就是你的网站要想实现微信扫码登录功能首先要在微信备案经过,它才会给你个AppID和AppSecret。后端

二、时序流程图

时序图总结流程:api

一、用户点击网站微信登录图标。微信

二、网站带上AppIDAppSecret回调域名参数请求微信OAuth2.0受权登录。app

三、第二步经过后,微信返回二维码供用户扫码。

四、用户扫码肯定受权。

五、微信带上code参数回调java后端相关接口。

六、java后端获取到code后,在带上带上AppIDAppSecretcode再去调微信接口。

七、获取access_token后就能够解析用户的一些基本信息,好比:微信用户头像、用户名、性别、城市等一些基本参数。

具体接口参数说明看官方文档。

 

2、获取受权登录二维码

一、微信登录接口

@Controller
@RequestMapping("/api/v1/wechat")
public class WechatController {
 
    /**
     * 微信开放平台二维码链接
     */
    private final static String OPEN_QRCODE_URL= "https://open.weixin.qq.com/connect/qrconnect?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_login&state=%s#wechat_redirect";

    /**
     * 开放平台回调url
     * 注意:test16web.tunnel.qydev.com 域名地址要和在微信端 回调域名配置 地址一直,不然会报回调地址参数错误
     */
    private final static String OPEN_REDIRECT_URL= "http://test16web.tunnel.qydev.com/pub/api/v1/wechat/user/callback1";

    /**
     * 微信审核经过后的appid
     */
    private final static String OPEN_APPID= "wx0255752c69a2d5b";


    /**
     * 拼装微信扫一扫登陆url
     */
    @GetMapping("login_url")
    @ResponseBody public JsonData loginUrl(@RequestParam(value = "access_page",required = true)String accessPage) throws UnsupportedEncodingException {

        //官方文档说明须要进行编码
        String callbackUrl = URLEncoder.encode(OPEN_REDIRECT_URL,"GBK"); //进行编码

        //格式化,返回拼接后的url,去调微信的二维码
        String qrcodeUrl = String.format(OPEN_QRCODE_URL,OPEN_APPID,callbackUrl,accessPage);

        return JsonData.buildSuccess(qrcodeUrl);
    }
    
}

二、经过调用接口前端得到详细URL地址

三、访问data数据中URL地址

成功!

下一步须要作的是用户扫完登录二维码后,进行回调:http://test16web.tunnel.qydev.com/pub/api/v1/wechat/user/callback1  接口

 

我只是偶尔安静下来,对过去的种种思忖一番。那些曾经的旧时光里即使有过天真愚钝,也不值得谴责。毕竟,日后的日子,还很长。不断鼓励本身,

天一亮,又是崭新的起点,又是未知的征程(上校12)

相关文章
相关标签/搜索