1. 程式人生 > >使用第三方微信登入

使用第三方微信登入

        這兩天瞭解了下使用微信第三方登入相關問題,這樣方便使用者登入,不用擔心密碼遺忘的問題,所以記錄下微信登入的簡單流程

        首先在在微信開放平臺註冊,記住要選擇開發者,每個微信都可以成為開發者,點選開啟微信開放平臺連結

        或者在微信公眾平臺申請一個服務的公眾號

        兩者的區別可以自行百度

第三方微信介面登入流程圖:

  使用者首先請求登入第三方應用(app.web等),一般現在使用者登入會有很多登入方式,郵箱/手機號/使用者名稱密碼/第三方等,這裡可以判斷使用者的登入方式,如果是微信登入就是接下來的流程:

1.請求第三方應用登入

2.第三方應用請求微信授權登入,是遵循OAuth2.0的協議授權碼模式

3.微信開放平臺會請求使用者是否授權登入

4.使用者確認授權登入(是或者否)

5.微信會返回給第三方應用一個code(授權臨時票據,需要使用code去微信申請token令牌)

6.根據返回的code+appId+appsecret去獲取access_token,其中   appId是伺服器在微信平臺認證後會自動生成,代表這這個第三方應用的唯一標識,   appsecret是密匙,加密解密使用,也是在伺服器在微信平臺認證後生成的   access_token 就是令牌,可以去獲取使用者微信的基本資訊(頭像,暱稱,性別,地址)有效期是2個小時

好了 流程嘚吧完了,接下來上程式碼

1.使用者掃描二維碼

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

2.redirect_uri是掃描成功後需要跳轉的頁面(跳轉會帶有引數code和state/如果使用者沒有授權則不會返回code,但是會返回state)

/**

     * 微信引導頁進入的方法

     * @return

     */

    @RequestMapping("/loginByWeiXin")

    public String loginByWeiXin(HttpServletRequest request, Map<String, Object> map) {

        // 獲取code和state 個引數

        String code = request.getParameter("code");

        String state = request.getParameter("state");

        System.out.println("code -------" + code + ", state ------- " + state);

        if(code != null && !"".equals(code)) {

            // 授權成功獲取使用者token和openID

            OAuthInfo authInfo = WeiXinUtil.getAccess_token(code);

            String openid = authInfo.getOpenid();

            String access_token = authInfo.getAccess_token();

            if(access_token == null) {

                // Code 使用過 異常

                System.out.println("Code 使用過 異常.....");

                return "redirect:" + 跳轉的路徑;

            }

            // 查詢微訊號是否繫結第三方平臺

            SysUser sysUser = weiXinService.getUserByWeiXinID(openid);

            if(sysUser == null) {

                //獲取隨機字串長度是57的

                String randomStr = StringUtil.getRandomString(57);

                request.getSession().setAttribute(openid, randomStr);

                // 尚未繫結賬號

                System.out.println("尚未繫結賬號.....");

                return "redirect:/index.jsp?openid=" + openid + "&state=" + randomStr;

            }

            userController.doSomeLoginWorkToHomePage(sysUser.getMcid(), map);

            // 登入成功

            return "homePage";

        } 

        // 未授權

        return "redirect:" + 路徑;

    }

3.根據code獲取token(實體類OAuthInfo封裝微信返回來的使用者資訊)

public static OAuthInfo getAccess_token(String code){

        String authUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ";

        authUrl= authUrl.replace("APPID", Param.APPID);

        authUrl = authUrl.replace("SECRET", Param.SECRET);

        authUrl = authUrl.replace("CODE", code);

        String jsonString = HTTPRequestUtil.sendPost(authUrl,"");

        System.out.println("jsonString: " + jsonString);

        OAuthInfo auth = null;

        try {

            auth = (OAuthInfo) JacksonUtil.parseJSONToObject(OAuthInfo.class, jsonString);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return auth;

    }

返回的使用者資訊格式:

"access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN","openid":"OPENID", "scope":"SCOPE","unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"      //客戶授權後才會有這個欄位}

好了 只是為了記錄下 微信登入流程 如果有錯誤歡迎指出  共同進步

相關推薦

使用第三方登入

        這兩天瞭解了下使用微信第三方登入相關問題,這樣方便使用者登入,不用擔心密碼遺忘的問題,所以記錄下微信登入的簡單流程        首先在在微信開放平臺註冊,記住要選擇開發者,每個微信都可以成為開發者,點選開啟微信開放平臺連結        或者在微信公眾平臺申

網站登入第三方登入

一、 網站應用微信登入是基於OAuth2.0協議標準構建的微信OAuth2.0授權登入系統。 在進行微信OAuth2.在進行微信OAuth2.0授權登入接入之前,在微信開放平臺註冊開發者帳號,並擁有一

iOS第三方登入時不走回調方法

ios 開發中第三方微信登入時,使用真機測試,授權登入按鈕點選後不走微信demo的 -(void)onResp:(BaseResp*)resp 回撥方法不走,無法判斷是否成功 檢視網上一些解決方法,自己嘗試了一下可行。 就是在APPDelegate中,把之前根據d

iOS 第三方登入整合-錯誤-40029

錯誤紀錄: #pragma mark - WXApiDelegate - (void)onResp:(BaseResp *)resp{ if ([resp isKindOfClass:[S

第三方登入 | 靜默授權與網頁授權的實現

一:介紹 第三方登入有QQ、微信、微博、支付寶等等,如果現在自己的專案中實現這些登入,即可以使用友盟的sdk,也可以一個一個接入,各有各的有點,這裡不做贅述。 今天和大家分享的是,在專案中實現微信登入,雖然微信官網給出了接入文件,但是我在接入的過程中,遇到一

關於使用登入第三方APP的實現(Android版)

轉自:http://my.oschina.net/crazymus/blog/521164 使用微信登入APP,免去註冊過程,現在已經有很多的類似應用了。整合該功能過程不復雜,但還是有一些地方需要注意的。 開始之前,需要做下面的準備工作。 1、到微信開放平臺註冊你的APP,並申請開通

Android開發第三方登入--登入

QQ登入、微信登入,新浪微博登入資料獲取demo下載 http://download.csdn.net/detail/pkandroid/9903796 github地址 進入 https://github.com/HYVincent/Login 專案

ecshop第三方登陸之登入

    $appid = 'XXXXX';     $appsecret = 'XXXXXXX';     if (empty($code))     show_message('授權失敗', '返回首頁', '', 'wrong');          $token_url = 'https://api

Android第三方繫結登入詳解

微信登入官方文件地址:點選進入 一、準備工作 在進行微信登入之前,首先要在微信開放平臺註冊開發者賬號,並擁有一個已稽核通過的移動應用,並獲得相應的AppID和AppSecret,申請微信登入且通過稽核後,可開始接入流程。 微信開放平臺接入地址:點選進入 建立移動應用後獲得

第三方接入登入流程整理

準備工作 2.在“管理中心”中建立一個移動應用,需“應用名稱、簡介、及28*28和108*108的PNG圖片各一張,且大小不超過300k”,點選下一步,需“應用官網地址,應用簽名及包名”等資訊,然後即可提交稽核。  說明:  應用簽名:可在微信開發平臺的資源中心》》資

登入第三方平臺

   1.前臺請求後臺獲得相應的引數及回撥地址,使用者掃面後登入到回撥的地址中,回撥的地址中獲得使用者資訊及返回資訊,前臺監控返回資訊做相應的處理及登入註冊 public class WeChatLoginAction extends AbstractRestBaseAct

iOS第三方登入 登入 第三方登入微詳解AF3.0

專案地址 :    https://github.com/zhonggaorong/weixinLoginDemo 最新版本的微信登入實現步驟實現: 1.在進行微信OAuth2.0授權登入接入之前,在微信開放平臺註冊開發者帳號,並擁有一個已稽核通過的移動應用,並獲得相應的AppID和AppSecret

第三方網站登入java程式碼實現

一、開發前知識 1、微信開放平臺與微信公眾平臺的區別  1.1 微信公眾平臺:    ② 微信公眾平臺面向的是普通的使用者,比如自媒體和媒體,企業官方微信公眾賬號運營人員使用,當然你所在的團隊或者公司有實力去開發一些內容,也可以呼叫公眾平臺裡面的

常用整合(第三方sdk整合套路)-- 登入

序言 程式開發過程中,總歸是會用到第三方sdk的,這裡就常用的登入、分享、支付做一個整合方法上的綜述,以備引申至通用的sdk使用方法。 一般的,sdk在登入、分享、支付上,都會按照如下的流程進行: 包裝請求(req)--> 傳送請求 -->

基於第三方授權登入的iOS程式碼分析

基於第三方的微信授權登入是之前筆者博文《QQ和新浪微博授權登入》的姊妹篇,微信已經深入到每一個APP的縫隙,最常用的莫過分享和登入了,接下來就以程式碼的形式來展開微信登入的相關說明,至於原理級別的oauth2.0認證體系請參考微信開放平臺的相關說明和圖示 https://o

第三方應用登入介面

重點內容 微信登入接入 微信登入遵循協議Aouth2.0中的授權碼模式 Aouth2.0授權碼模式的認證流程: (A)使用者訪問客戶端,後者將前者導向認證伺服器。 (B)使用者選擇是否給予客戶端授權。 (C)假設使用者給予授權,認證伺服器首先生成

Android集成第三方登錄

handler pid 微信 send stack lencod str ont pps 第一步: 在微信開放平臺創建安卓應用,需要輸入的包名和簽名就不用再提吧,不知道的自行百度。 應用創建完畢後會得到兩個值:AppID、AppSecret,用這兩個值來請求微信。 然後去

GitHub開源:升訊威營銷系統(第三方平臺)完整源代碼

粉絲 做事 truct 全部 在家 是我 容易 情況 使用場景 GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction升訊威微信營銷系統開發實踐系列升訊威微信營銷系統開發實踐:(1)功能設計與架構設計升訊威微信

捋一捋PHP第三方登錄

微信登錄 wechat login PC端掃二維碼登錄先說步驟吧: 微信網站登錄的文檔在https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&a

營銷系統(第三方平臺)github 開源

進行 收集 可用 會員卡 數據 例如 關註 body 技術分享 升訊威微信營銷系統(微信第三方平臺) 在線體驗:http://wxcm.eeipo.cn/開源地址:https://github.com/iccb1013/Sheng.WeixinConstruction說明