1. 程式人生 > >網站登入之第三方微信登入

網站登入之第三方微信登入

一、

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

在進行微信OAuth2.在進行微信OAuth2.0授權登入接入之前,在微信開放平臺註冊開發者帳號,並擁有一個已稽核通過的網站應用,並獲得相應的AppID和AppSecret,申請微信登入且通過稽核後,可開始接入流程。

二、

授權流程:

微信OAuth2.0授權登入讓微信使用者使用微信身份安全登入第三方應用或網站,在微信使用者授權登入已接入微信OAuth2.0的第三方應用後,第三方可以獲取到使用者的介面呼叫憑證(access_token),通過access_token可以進行微信開放平臺授權關係介面呼叫,從而可實現獲取微信使用者基本開放資訊和幫助使用者實現基礎開放功能等。

微信OAuth2.0授權登入目前支援authorization_code模式,適用於擁有server端的應用授權。該模式整體流程為:

       1. 第三方發起微信授權登入請求,微信使用者允許授權第三方應用後,微信會拉起應用或重定向到第三方網站,並且帶上授權臨時票據code引數;

       2. 通過code引數加上AppID和AppSecret等,通過API換取access_token;

       3. 通過access_token進行介面呼叫,獲取使用者基本資料資源或幫助使用者實現基本操作。


第一步:獲取code

第三方使用網站應用授權登入前請注意已獲取相應網頁授權作用域(scope=snsapi_login),則可以通過在PC端開啟以下連結:

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

若提示“該連結無法訪問”,請檢查引數是否填寫錯誤,如redirect_uri的域名與稽核時填寫的授權域名不一致或scope不為snsapi_login。
第二步:通過code獲取access_token

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

正確的返回:

{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN","openid":"OPENID", "scope":"SCOPE" }
重新整理access_token有效期

access_token是呼叫授權關係介面的呼叫憑證,由於access_token有效期(目前為2個小時)較短,當access_token超時後,可以使用refresh_token進行重新整理,access_token重新整理結果有兩種:

         1. 若access_token已超時,那麼進行refresh_token會獲取一個新的access_token,新的超時時間;

         2. 若access_token未超時,那麼進行refresh_token不會改變access_token,但超時時間會重新整理,相當於續期access_token。

         refresh_token擁有較長的有效期(30天),當refresh_token失效的後,需要使用者重新授權。

獲取第一步的code後,請求以下連結進行refresh_token:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

正確的返回:

{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
第三步:通過access_token呼叫介面

獲取access_token後,進行介面呼叫,有以下前提:

  1.  access_token有效且未超時;
  2.  微信使用者已授權給第三方應用帳號相應介面作用域(scope)。

對於介面作用域(scope),能呼叫的介面有以下:

其中snsapi_base屬於基礎介面,若應用已擁有其它scope許可權,則預設擁有snsapi_base的許可權。使用snsapi_base可以讓移動端網頁授權繞過跳轉授權登入頁請求使用者授權的動作,直接跳轉第三方網頁帶上授權臨時票據(code),但會使得使用者已授權作用域(scope)僅為snsapi_base,從而導致無法獲取到需要使用者授權才允許獲得的資料和基礎功能。

JS微信登入主要用途:網站希望使用者在網站內就能完成登入,無需跳轉到微信域下登入後再返回,提升微信登入的流暢性與成功率。 網站內嵌二維碼微信登入JS實現辦法:

<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>

在需要使用微信登入的地方例項以下JS物件:
                          var obj = new WxLogin({
                              id:"login_container", 
                              appid: "", 
                              scope: "", 
                              redirect_uri: "",
                              state: "",
                              style: "",
                              href: ""
                            });       



相關推薦

網站登入第三方登入

一、 網站應用微信登入是基於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,也可以一個一個接入,各有各的有點,這裡不做贅述。 今天和大家分享的是,在專案中實現微信登入,雖然微信官網給出了接入文件,但是我在接入的過程中,遇到一

ecshop第三方登陸登入

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

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

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

關於使用登入第三方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 專案

網站應用登入開發

                                                 一、授權流程     微信OAuth2.0授權登入讓微信使用者使用微信省份安全登入第三方應用或網站,在微信使用者授權登入已接入微信OAuth2.0的第三方應用後,第三方可以獲取到

C#開發——網站應用登入開發

1. 在微信開放平臺註冊開發者賬號,並有一個稽核已通過的網站應用,並獲得相對應的AppID和AppSecret,申請通過登陸後,方可開始接入流程。 2.微信OAuth2.0授權登入目前支援authorization_code模式,適用於擁有server端的應用授權。該模式整體流程為: 1. 第三方發起微信

登入,qq登入登入 tp3.2

 微博開放平臺文件:http://open.weibo.com/wiki/Connect/login // QQ登入     public function qqLogin(){         $ qc = new Lo

小程式登入頁例項 —— 小程式實戰系列(5)

提供一個登入頁的案例,供同學們使用 專案效果圖: 目錄結構: 圖片資源: name.png key.png loginLog.jpg login.wxml: <view c

Android第三方繫結登入詳解

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

小程式填坑路(四):登入獲取openid、unionid

在微信小程式中,因為各種各樣的原因我們會需要獲取到使用者的openid或者unionid下面就簡單來講一下在小程式中如何獲取openid和unionid。 步驟一:微信登入獲取登入憑證

第三方接入登入流程整理

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

網站新增登入功能

/* *微信掃二維碼登入 */ //1、首頁登入按鈕html <a class="loginLink"><button class="btn btn-primary">登入</button></a> //2、登

登入第三方平臺

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

java後端 三方登入登入 開發詳細流程以及遇到過的坑 總結(非常詳細) 2017-12-26

上一篇寫了qq登入,其實微信登入和qq登入幾乎一個邏輯,一個寫完,另一個就簡單了 一、第三方登入介面申請流程,並且拿到code 這裡的獲取key和id也是有2個地方,一個是微信公眾平臺,一個是微信開放

手機第三方登入,判斷瀏覽器

應用場景:用第三方微信登入,只有在微信的瀏覽器中才能使用。為了避免使用者在非微信瀏覽器中使用微信登入,所以需設定只在微信瀏覽器顯示微信登入 如何判斷微信內建瀏覽器,首先需要獲取微信內建瀏覽器的User