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


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

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

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

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

 項目github地址https://github.com/yudiandemingzi/spring-boot-wechat-login

一、掃碼登錄流程講解

1、首先准備工作

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

在進行微信OAuth2.在進行微信OAuth2.0授權登錄接入之前,在微信開放平台注冊開發者帳號,並擁有一個已審核通過的網站應用,並獲得相應的AppID和AppSecret

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

2、時序流程圖

時序圖總結流程:

1、用戶點擊網站微信登陸圖標。

2、網站帶上AppID和AppSecret和回調域名參數請求微信OAuth2.0授權登陸。

3、第二步通過后,微信返回二維碼供用戶掃碼。

4、用戶掃碼確定授權。

5、微信帶上code參數回調java后端相關接口。

6、java后端獲取到code后,在帶上帶上AppID和AppSecret和code再去調微信接口。

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地址

成功!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM