Java實現(xiàn)QQ、微信、新浪微博第三方登錄

?????? 對于大多數(shù)的網站、APP都有第三方登錄這個功能,自己也做過幾次,最近做的passport項目又用到了第三方登錄,所以特意總結了一下關于第三方登錄的實現(xiàn),并拿出來與大家一同分享:

三個開放平臺注冊賬戶獲取AppKey和AppSecret

QQ互聯(lián)地址:https://connect.qq.com/intro/login

微信開放平臺地址:https://open.weixin.qq.com/

新浪微博開放平臺地址:http://open.weibo.com/

一、QQ互聯(lián)

???? 申請互聯(lián)審核通過后創(chuàng)建網站應用,如下圖:


點擊查看APPID和APPkey


Step1:獲取Authorization Code

pc獲取code地址:https://graph.qq.com/oauth2.0/authorize;獲取方式發(fā)送HTTP GET請求

Step2:通過Authorization Code獲取Access Token

pc獲取token地址:https://graph.qq.com/oauth2.0/token,獲取方式發(fā)送HTTP GET請求

Step3:獲取openID

pc 獲取openID的地址:https://graph.qq.com/oauth2.0/me,獲取方式發(fā)送HTTP GET請求

Step4:獲取qq用戶信息

獲取用戶信息地址:https://graph.qq.com/user/get_user_info


二、微信互聯(lián)

申請互聯(lián)審核通過后創(chuàng)建網站應用,如下圖:

微信不開發(fā)平臺不保存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

若提示“該鏈接無法訪問”,請檢查參數(shù)是否填寫錯誤,如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刷新或續(xù)期access_token使用

/sns/auth檢查access_token有效性

snsapi_userinfo/sns/userinfo獲取用戶個人信息

其中snsapi_base屬于基礎接口,若應用已擁有其它scope權限,則默認擁有snsapi_base的權限。使用snsapi_base可以讓移動端網頁授權繞過跳轉授權登錄頁請求用戶授權的動作,直接跳轉第三方網頁帶上授權臨時票據(jù)(code),但會使得用戶已授權作用域(scope)僅為snsapi_base,從而導致無法獲取到需要用戶授權才允許獲得的數(shù)據(jù)和基礎功能。

三、新浪微博互聯(lián)

先申請應用

第一步:請求用戶授權code

地址:https://api.weibo.com/oauth2/authorize

第二步:獲取授權token

地址:https://api.weibo.com/oauth2/access_token

第三步:獲取授權用戶uid

地址:https://api.weibo.com/oauth2/get_token_info

第四步:根據(jù)用戶uid獲取用戶信息

地址:https://api.weibo.com/2/users/show.json

發(fā)送GET請求

互聯(lián)的時候注意創(chuàng)建應用時的設置的回調地址和項目里的回調地址保持一致,不然第一步獲取code后接下來就無法回調

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容