在《Github第三方登錄--通用化的第三方登陸實現(xiàn)》中我們實現(xiàn)了一個通用化的第三方登錄框架,其中包括OAUth的基本流程以及最簡單的用戶注冊。但是不同的第三方" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 基于Spring的新浪微博第三方登錄實現(xiàn)

基于Spring的新浪微博第三方登錄實現(xiàn)

時間:2023-05-20 17:48:01 | 來源:網(wǎng)站運營

時間:2023-05-20 17:48:01 來源:網(wǎng)站運營

基于Spring的新浪微博第三方登錄實現(xiàn):

由Cliff發(fā)表在天碼營


在《Github第三方登錄--通用化的第三方登陸實現(xiàn)》中我們實現(xiàn)了一個通用化的第三方登錄框架,其中包括OAUth的基本流程以及最簡單的用戶注冊。但是不同的第三方登錄因為其細節(jié)不同還是有很多坑的,今天我們就從完善開發(fā)者信息開始一步一步添加微博第三方登錄的功能。

注意,需要完成微博的第三方登錄功能需要有一個域名以及修改該域名網(wǎng)站的權(quán)限,之后審核時需要對首頁進行修改。這里我們假設(shè)我們的域名是http://tianmaying.com

完善用戶信息

首先我們進入新浪微博開發(fā)平臺,登錄我們的微博賬號,點擊右上角的【我的應用】,我們就會看見相關(guān)的功能以及相對應需要完善的信息。

我們可以看到,如果需要添加第三方應用只需要完善基本信息,但是需要注意的是,如果你添加了微博第三方登錄功能后需要通過其審核,仍然需要通過【身份認證】。這里我們只需要完善【基本信息】即可。

點擊右側(cè)的【基本信息】,按要求添加相關(guān)的信息,最后完成郵箱驗證,我們的基本信息就添加完成了。之后我們需要添加網(wǎng)站的相關(guān)信息:


選擇左上角的【微連接】->【網(wǎng)站接入】,之后再選擇【立即接入】:


我們需要驗證的是我們是否對于網(wǎng)站擁有所有者權(quán)限,需要修改域名相對應的網(wǎng)頁上添加一行代碼,按要求進行修改即可。

驗證通過后,我們就可以在本地進行第三方登錄的測試了。

添加第三方通用登錄框架

《Github第三方登錄--通用化的第三方登陸實現(xiàn)》一文中已經(jīng)完成了一個通用化第三方登錄的框架,如果想對通用化第三方登錄的實現(xiàn)有所了解,請先閱讀《Github第三方登錄--通用化的第三方登陸實現(xiàn)》。

我們直接復制上述代碼,去除掉github相關(guān)的代碼:

添加SinaWeiboOAuthService

按照《Github第三方登錄--通用化的第三方登陸實現(xiàn)》,我們需要為Weibo添加兩個類,SinaWeiboAPI以及SinaWeiboOAuthService,但是SinaWeiboAPI在scribe中已經(jīng)提供了,我們直接使用即可。接下來我們來添加SinaWeiboOAuthService:

public class SinaWeiboOAuthService extends OAuthServiceDeractor { private static final String PROTECTED_RESOURCE_URL = "https://api.weibo.com/oauth2/get_token_info"; public SinaWeiboOAuthService(OAuthService oAuthService) { super(oAuthService, OAuthTypes.SINA_WEIBO); } @Override public OAuthUser getOAuthUser(Token accessToken) { OAuthRequest request = new OAuthRequest(Verb.POST, PROTECTED_RESOURCE_URL); this.signRequest(accessToken, request); Response response = request.send(); OAuthUser oAuthUser = new OAuthUser(); oAuthUser.setoAuthType(getoAuthType()); oAuthUser.setoAuthId(JSONPath.eval(JSON.parse(response.getBody()), "$.uid").toString()); oAuthUser.setUser(new User()); return oAuthUser; }}SinaWeiboOAuthService需要完成獲取用戶的相關(guān)信息,并將其轉(zhuǎn)換成為OAuthUser對象,關(guān)于如何獲取新浪微博的用戶信息以及其相關(guān)參數(shù),可以參看新浪微博的官方文檔。

配置OAuthService

最后,按照我們從新浪微博中得到的appKey、appSecret以及我們定義的callback_uri對SinaWeiboOAuthService進行相關(guān)配置:

@Configurationpublic class OAuthConfig { private static final String CALLBACK_URL = "http://tianmaying.com/oauth/%s/callback"; @Value("${oAuth.sina.appKey}") String sinaAppKey; @Value("${oAuth.sina.appSecret}") String sinaAppSecret; @Bean public OAuthServiceDeractor getSinaOAuthService(){ return new SinaWeiboOAuthService(new ServiceBuilder() .provider(SinaWeiboApi20.class) .apiKey(sinaAppKey) .apiSecret(sinaAppSecret) .callback(String.format(CALLBACK_URL, OAuthTypes.SINA_WEIBO)) .build()); }}

修改hosts

由于微博的第三方登錄是與域名相綁定的,因此我們需要我們的hosts文件,將本地127.0.0.1綁定到http://tianmaying.com即可。

windows系統(tǒng)hosts文件一般在C:/WINDOWS/system32/drivers/etc

mac系統(tǒng)hosts文件地址一般為:/etc/hosts

在hosts文件添加以下一行:

127.0.0.1 tianmaying.com

調(diào)試

進入根目錄,運行sudo mvn spring-boot:run命令,訪問課程 | 天碼營 (之前填寫應用信息以及修改hosts時所填寫的域名,這三個域名必須一致),由于必須通過域名進行訪問,所以我們需要監(jiān)聽80端口,運行時需要超級管理員權(quán)限。


注意:將代碼上線后,還需要經(jīng)過新浪微博的審核,進入新浪微博--我的應用,按要求進行填寫即可。


歡迎關(guān)注天碼營微信公眾號: TMY-EDU

小編重點推薦:

Spring MVC實戰(zhàn)入門訓練

Spring Data JPA實戰(zhàn)入門訓練

Java Web實戰(zhàn)訓練

Node.js全棧開發(fā)


更多精彩內(nèi)容請訪問

天碼營網(wǎng)站

關(guān)鍵詞:實現(xiàn)

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉