1. 程式人生 > >微信掃碼登陸(1)---掃碼登入流程講解、獲取授權登陸二維碼

微信掃碼登陸(1)---掃碼登入流程講解、獲取授權登陸二維碼

掃碼登入流程講解、獲取授權登陸二維碼

具體流程可以看微信官網的掃碼登入文件

其實官方文件已經講的非常清楚而且講的也很明白。

一、掃碼登入流程講解

1、首先準備工作

網站應用微信登入是基於OAuth2.0協議標準構建的微信OAuth2.0授權登入系統。

在進行微信OAuth2.在進行微信OAuth2.0授權登入接入之前,在微信開放平臺註冊開發者帳號,並擁有一個已稽核通過的網站應用,並獲得相應的AppIDAppSecret

申請微信登入且通過稽核後,可開始接入流程。就是你的網站要想實現微信掃碼登陸功能首先要在微信備案通過,它才會給你個AppID和AppSecret。

2、時序流程圖

時序圖總結流程:

1、使用者點選網站微信登陸圖示。

2、網站帶上AppIDAppSecret回撥域名引數請求微信OAuth2.0授權登陸。

3、第二步通過後,微信返回二維碼供使用者掃碼。

4、使用者掃碼確定授權。

5、微信帶上code引數回撥java後端相關介面。

6、java後端獲取到code後,在帶上帶上AppIDAppSecretcode再去調微信介面。

7、獲取access_token後就可以解析使用者的一些基本資訊,比如:微信使用者頭像、使用者名稱、性別、城市等一些基本引數。

具體介面引數說明看官方文件。

二、獲取授權登陸二維碼

1、微信登陸介面

@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); } }

2、通過呼叫介面前端獲得詳細URL地址

3、訪問data資料中URL地址

成功!

下一步需要做的是使用者掃完登陸二維碼後,進行回撥:http://test16web.tunnel.qydev.com/pub/api/v1/wechat/user/callback1  介面

我只是偶爾安靜下來,對過去的種種思忖一番。那些曾經的舊時光裡即便有過天真愚鈍,也不值得譴責。畢竟,往後的日子,還很長。不斷鼓勵自己,

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