網站接入微信登陸API
1.第三方注冊微信開放平台賬號,並且有一個已經審核通過的網站應用,獲得相應的appid跟appsecret
2.第三方可以通過appid跟appsecret獲取到用戶的接口調用憑證(access_token)
3.通過access_token進行接口調用,獲取用戶基本的數據資源或者幫助用戶實現基本操作
微信OAuth2.0授權登陸目前支持authorization_code模式,適用於擁有server端的應用
獲取access_token時序圖:
圖片:
建議把access_token用戶信息和appsecret 接口密鑰放到雲端以數據泄露被惡意串改,竊取
第三方應用授權登陸獲取相應的作用域,檢查參數是否填寫錯誤,如redirect_uri的域名跟審核時填寫的域名不同或者scope不為snsapi_login
關鍵參數(state):用於保持請求和回調的狀態,授權請求后原樣帶回給第三方。該參數可用於防止csrf攻擊(跨站請求偽造攻擊),建議第三方帶上該參數,可設置為簡單的隨機數加session進行校驗
用戶允許授權后會重定向到redirect_uri,並且帶上code跟state參數
第二種定制化需求的獲取code的方式
圖片:
授權臨時票據(code):第三方通過code獲取access_token(入口令牌)和refresh_token(刷新),scope(作用域)的時候會用到,code的超時時間為10分鍾,一個code只能成功換取一次access_token即失效,code的臨時性跟一次性保障了用戶微信授權的安全性。第三方可以通過https跟state參數,進一步加強授權登陸的安全性。
授權作用域(scope):代表了用戶給第三方的接口權限,第三方需要向微信開放平台申請使用相應的scope權限,使用文檔所述的方式讓用戶授權,經過用戶授權后,獲得相應的access_token后才可以對相應的接口進行調用