企業微信API接口--網頁授權登錄(二)
企業微信OAuth2接入流程,來自官網的流程圖:
-
首先要在企業微信的后台配置可信域名:
要求配置的可信域名,必須與訪問鏈接的域名完全一致;若訪問鏈接URL帶了端口號,端口號也需要登記到可信域名中
-
前端構建網頁授權鏈接:
- 鏈接地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
- appid參數:小程序、公眾號等的唯一標識
- redirect_uri 參數:重定向的地址
-
后端邏輯第一步:獲取企業微信的access_token
-
請求方式: GET(HTTPS)
-
請求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
-
接口參數:
參數 必須 說明 corpid 是 企業ID,獲取方式參考:術語說明-corpid corpsecret 是 應用的憑證密鑰,獲取方式參考:術語說明-secret -
返回值:
{ "errcode": 0, "errmsg": "ok", "access_token": "accesstoken000001", "expires_in": 7200 }
-
-
后端邏輯第二步:獲取訪問用戶身份
-
請求方式:GET(HTTPS)
-
請求地址:https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
-
參數說明:
參數 必須 說明 access_token 是 調用接口憑證 code 是 通過成員授權獲取到的code,最大為512字節。每次成員授權帶上的code將不一樣,code只能使用一次,5分鍾未被使用自動過期。
-
-
前端構建網頁授權鏈接 踩坑的地方:前端訪問這個網址,出現跨域問題。解決方式是:
- 重定向的地址寫成前端的空白頁(www.xxxx.com)
- 當觸發鏈接后,校驗appid和redirect_uri 合法后,微信客戶端會重定向重定向到空白頁(www.xxxx.com?code=xxxxxx)
- 在次空白頁面寫一個js事件,把code作為參數調用開發者的服務后台
- 這樣就可以避開前端跨域問題