APP開發,微信第三方登入的介紹

Morven.Huang發表於2018-12-14

去年做了一陣APP相關的開發,經常遇到第三方登陸的需求,比如微信、微博、fb的第三方登陸等等,其實主要的流程都大同小異,這裡就以微信為例來介紹,希望對大家有幫助。

微信開放平臺(open.weixin.qq.com)

  1. 註冊開發者賬號,填寫基本資訊,例如郵箱,郵箱啟用
  2. 完善開發者的資料,包括真實姓名,手機,地址等
  3. 騰訊稽核開發者資質,稽核費用每年300
  4. 在管理中心建立應用,分移動應用、網站應用等不同型別
  5. 填寫應用的名稱、簡介、logo、應用的官方網站等資訊
  6. 騰訊稽核,7個工作日
  7. 通過後可獲得該應用的APPID、AppSecret
  8. 並且可在應用詳情中申請開通微信登入、微信支付等

呼叫流程

1. 獲取授權碼(code)

1.1. 移動應用呼叫SDK
1.2. 網站應用呼叫

https://open.weixin.qq.com/connect/qrconnect

並傳入APPID,及重定向地址,生成二維碼地址。使用者使用微信掃描二維碼並同意授權後,跳轉至重定向地址,並且帶來了授權碼。

2. 使用授權碼獲取access_token

2.1. 通過呼叫

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",
 "unionid""UNIONID"
}

2.2. access_token有效期
有效期較短(2小時),refresh_token有效期一個月,可以使用refresh_token重新整理access_token,避免頻繁要求使用者同意授權。

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

2.3. 多個應用的情況
如果同時有多個應用,同一個微信使用者在不同的應用上登入會生成不同的openid,但unionid相同,若需要同一微信使用者對映到後臺的同一賬戶上,應使用unionid。

3.通過access_token獲取使用者資訊(如暱稱等),

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID"

備註

以上呼叫步驟可以完全由前端(APP、WEB)完成,不過一般應用後臺有自己的一套使用者系統,所以應用後臺可以在不同的步驟介入,例如可以在前端活動使用者資訊後呼叫後臺進行入庫儲存,或者也可已在獲得access_token後介入,由後臺訪問微信獲取使用者資訊。

好了,今天就先到這兒,cheers!



送書了,送書了,沒有套路,沒有套路,關注公眾號“程式設計師雜書館”,就送出O'Reilly《Spark快速大資料分析》紙質書(亦有一批PDF分享)!

APP開發,微信第三方登入的介紹APP開發,微信第三方登入的介紹

相關文章