PC網站應用接入微信登錄


參考文檔:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316518&token=&lang=zh_CN

 

微信開放平台里面的文檔已經說明的很詳細了。這里再用實例補充下。

 

1.發送請求

微信登錄的請求鏈接:https://open.weixin.qq.com/connect/qrconnect?appid=12312312312312&redirect_uri=www.baidu.com&response_type=code&scope=snsapi_login&state=3072355978#wechat_redirect

參數說明:

appid:應用唯一標識,必填

redirect_uri:重定向地址,需要進行UrlEncode,必填

response_type: code,必填

scope:應用授權作用域,擁有多個作用域用逗號(,)分隔,網頁應用目前僅填寫snsapi_login即可,必填

state:用於保持請求和回調的狀態,授權請求后原樣帶回給第三方。該參數可用於防止csrf攻擊(跨站請求偽造攻擊),建議第三方帶上該參數,可設置為簡單的隨機數加session進行校驗,非必填

 

用戶允許授權后,將會重定向到redirect_uri的網址上,並且帶上code和state參數:www.baidu.com?code=CODE&state=STATE

若用戶禁止授權,則重定向后不會帶上code參數,僅會帶上state參數:www.baidu.com?state=STATE

 

第二步:通過code獲取access_token

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

參數說明:

appid:應用唯一標識,必填

secret:應用密鑰AppSecret,在微信開放平台提交應用審核通過后獲得,必填

code:填寫第一步獲取的code參數,必填

grant_type:填authorization_code,必填

正確的返回:


"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}

參數說明:

access_token:接口調用憑證

expires_in: access_token接口調用憑證超時時間,單位(秒)(目前為2個小時)

refresh_token: 用戶刷新access_token

openid: 授權用戶唯一標識

scope: 用戶授權的作用域,使用逗號(,)分隔

unionid: 只有在用戶將公眾號綁定到微信開放平台帳號后,才會出現該字段。

 

access_token是調用授權關系接口的調用憑證,由於access_token有效期(目前為2個小時)較短,當access_token超時后,可以使用refresh_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

參數說明:

appid:應用唯一標識,必填

grant_type:填refresh_token,必填

refresh_token:填寫通過access_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)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM