日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

第三方登录:新浪微博登录(OAuth2.0)

發(fā)布時(shí)間:2024/5/24 综合教程 50 生活家
生活随笔 收集整理的這篇文章主要介紹了 第三方登录:新浪微博登录(OAuth2.0) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

完善用戶信息

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

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

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

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

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

驗(yàn)證通過后,我們就可以在本地進(jìn)行第三方登錄的測試了。

添加第三方通用登錄框架

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

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

添加SinaWeiboOAuthService

按照《Github第三方登錄--通用化的第三方登陸實(shí)現(xiàn)》,我們需要為Weibo添加兩個(gè)類,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進(jìn)行相關(guān)配置:

@Configuration
public 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綁定到tianmaying.com即可。

windows系統(tǒng)hosts文件一般在C:WINDOWSsystem32driversetc

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

在hosts文件添加以下一行:

127.0.0.1       tianmaying.com

調(diào)試

進(jìn)入根目錄,運(yùn)行sudo mvn spring-boot:run命令,訪問http://tianmaying.com(之前填寫應(yīng)用信息以及修改hosts時(shí)所填寫的域名,這三個(gè)域名必須一致),由于必須通過域名進(jìn)行訪問,所以我們需要監(jiān)聽80端口,運(yùn)行時(shí)需要超級管理員權(quán)限。

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

參考代碼,請?jiān)L問:https://www.tianmaying.com/tutorial/OAuth-login-weibo/repo

本文轉(zhuǎn)載自

原文作者:Cliff

原文鏈接:https://www.tianmaying.com/tutorial/OAuth-login-weibo

總結(jié)

以上是生活随笔為你收集整理的第三方登录:新浪微博登录(OAuth2.0)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。