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

去年作了一陣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,及重定向地址,生成二維碼地址。用戶使用微信掃描二維碼並贊成受權後,跳轉至重定向地址,而且帶來了受權碼。json

2. 使用受權碼獲取access_token

2.1. 經過調用api

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

返回結果相似以下:ruby


 "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。app

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分享)!

相關文章
相關標籤/搜索