微信掃碼登錄(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)

相關文章
相關標籤/搜索