Java实现QQ、微信、新浪微博第三方登录
?? 對于大多數的網站、APP都有第三方登錄這個功能,自己也做過幾次,最近做的passport項目又用到了第三方登錄,所以特意總結了一下關于第三方登錄的實現,并拿出來與大家一同分享:
三個開放平臺注冊賬戶獲取AppKey和AppSecret
QQ互聯地址:https://connect.qq.com/intro/login
微信開放平臺地址:https://open.weixin.qq.com/
新浪微博開放平臺地址:http://open.weibo.com/
一、QQ互聯
???? 申請互聯審核通過后創建網站應用,如下圖:
?
點擊查看APPID和APPkey
?
Step1:獲取Authorization Code
pc獲取code地址:https://graph.qq.com/oauth2.0/authorize;獲取方式發送HTTP GET請求
Step2:通過Authorization Code獲取Access Token
pc獲取token地址:https://graph.qq.com/oauth2.0/token,獲取方式發送HTTP GET請求
Step3:獲取openID
pc 獲取openID的地址:https://graph.qq.com/oauth2.0/me,獲取方式發送HTTP GET請求
Step4:獲取qq用戶信息
獲取用戶信息地址:https://graph.qq.com/user/get_user_info
?
二、微信互聯
申請互聯審核通過后創建網站應用,如下圖:
微信不開發平臺不保存appsecret,申請應用成功時一定要記住
第一步:請求CODE:
第三方使用網站應用授權登錄前請注意已獲取相應網頁授權作用域(scope=snsapi_login),則可以通過在PC端打開以下鏈接:
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤,如redirect_uri的域名與審核時填寫的授權域名不一致或scope不為snsapi_login。
?
第二步:通過code獲取access_token
通過code獲取access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
第三步:通過access_token調用接口
獲取access_token后,進行接口調用,有以下前提:
1. access_token有效且未超時;
2. 微信用戶已授權給第三方應用帳號相應接口作用域(scope)。
對于接口作用域(scope),能調用的接口有以下:
授權作用域(scope)接口接口說明
snsapi_base/sns/oauth2/access_token通過code換取access_token、refresh_token和已授權scope
/sns/oauth2/refresh_token刷新或續期access_token使用
/sns/auth檢查access_token有效性
snsapi_userinfo/sns/userinfo獲取用戶個人信息
其中snsapi_base屬于基礎接口,若應用已擁有其它scope權限,則默認擁有snsapi_base的權限。使用snsapi_base可以讓移動端網頁授權繞過跳轉授權登錄頁請求用戶授權的動作,直接跳轉第三方網頁帶上授權臨時票據(code),但會使得用戶已授權作用域(scope)僅為snsapi_base,從而導致無法獲取到需要用戶授權才允許獲得的數據和基礎功能。
三、新浪微博互聯
先申請應用
第一步:請求用戶授權code
地址:https://api.weibo.com/oauth2/authorize
第二步:獲取授權token
地址:https://api.weibo.com/oauth2/access_token
第三步:獲取授權用戶uid
地址:https://api.weibo.com/oauth2/get_token_info
第四步:根據用戶uid獲取用戶信息
地址:https://api.weibo.com/2/users/show.json
發送GET請求
互聯的時候注意創建應用時的設置的回調地址和項目里的回調地址保持一致,不然第一步獲取code后接下來就無法回調
作者:yljava
鏈接:https://www.jianshu.com/p/8faaad6e9aec
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
以上是生活随笔為你收集整理的Java实现QQ、微信、新浪微博第三方登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse jad 反编译class
- 下一篇: Ext2.0的EditorGridPan