摘要:登錄方式本來(lái)公司項(xiàng)目是正常的用戶名密碼登錄,但是突然轉(zhuǎn)換成了第三方方式登錄,由此開始學(xué)習(xí)了該種登錄形式。同普通的用戶名密碼登錄不同,登錄方式中,增加了一個(gè)授權(quán)層。至此,三方登錄已經(jīng)成功登錄。
oAuth2 登錄方式
本來(lái)公司項(xiàng)目是正常的用戶名、密碼登錄,但是突然轉(zhuǎn)換成了第三方oAuth2方式登錄,由此開始學(xué)習(xí)了該種登錄形式。
思路共有5種授權(quán)模式,有授權(quán)碼模式、簡(jiǎn)化模式、密碼模式、客戶端模式,這里只介紹授權(quán)碼模式,這大概是功能最完整、流程最嚴(yán)密的授權(quán)模式,大概也是使用最多的授權(quán)模式。
同普通的用戶名、密碼登錄不同,oAuth2登錄方式中,增加了一個(gè)授權(quán)層。用戶想要進(jìn)行登錄操作時(shí),會(huì)被跳轉(zhuǎn)到授權(quán)服務(wù)器上進(jìn)行登錄,在授權(quán)服務(wù)器登錄成功時(shí),會(huì)觸發(fā)一個(gè)回調(diào)函數(shù)重新回到當(dāng)前用戶所在系統(tǒng),之后執(zhí)行后續(xù)操作。
這里使用了simple-oauth2。正常的npm install simple-oauth2即可,想了解更詳細(xì)的使用方法,點(diǎn)擊此傳送門便可了解。
配置信息:
cosnt oauth2 = simpleOauth.create({ "clientId": "", "clientSecret": " ", "tokenPath": "/oauth/access_token", "authorizePath": "/oauth/authorize" })
步驟:
(1)用戶點(diǎn)擊登錄按鈕。服務(wù)器事先設(shè)定一個(gè)配置信息如上所示,后臺(tái)通過下面的這個(gè)函數(shù)會(huì)得到一個(gè)Url,結(jié)果類似于/oauth/authorize/redirect_uri=http://localhost:3000/callback&client_id=&clientsecret=&response_type=code。
// /auth路由處理 const authorizationUrl = oauth2.authorizationCode.authorizeURL({ redirect_uri: "http://localhost:3000/callback" // scope: "" 可有可無(wú)參數(shù) // state: "" 可有可無(wú)參數(shù) 可以自己任意填寫 })
(2)通過該Url,可以到達(dá)三方登錄界面,用戶在三方登陸成功時(shí),上面的redirect_uri就會(huì)被回調(diào),同時(shí)會(huì)附帶一個(gè)code在redirect_uri上,該code由三方登錄服務(wù)器提供,該code與客戶端Id和redirect_uri是一一對(duì)應(yīng)的關(guān)系,回調(diào)的url如/callback/code=。
// /callback路由處理 let code = req.query.code oauth2.authorizationsCode.getToken(code, (err, result) => { if(err) // handle error const token = oauth2.accessToken.create(result) // 這里就是得到的access_token })
(3)重要的token得到之后,就預(yù)示著三方登錄已經(jīng)登錄成功。接下來(lái)就是自己系統(tǒng)的處理了。
至此,三方登錄已經(jīng)成功登錄。
寫的可能不盡如人意,我也是學(xué)習(xí)者,寫的目的也是為了讓自己對(duì)oAuth2登錄加深印象,如果錯(cuò)誤,歡迎指正,一起進(jìn)步啊。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89233.html
摘要:詳情接口我們這里主要講的是網(wǎng)站應(yīng)用,網(wǎng)站應(yīng)用微信登錄是基于協(xié)議標(biāo)準(zhǔn)構(gòu)建的微信授權(quán)登錄系統(tǒng)即上面的協(xié)議。在微信客戶端授權(quán)登錄獲取用戶信息的可以查看。微信授權(quán)登錄目前支持模式,適用于擁有端的應(yīng)用授權(quán)。 一、OAuth2.0 OAuth(開放授權(quán))是一個(gè)開放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源(如照片,視頻,聯(lián)系人列表),而無(wú)需將用戶名和密碼提供給第三方應(yīng)用。 ...
摘要:前言基于做微服務(wù)架構(gòu)分布式系統(tǒng)時(shí),作為認(rèn)證的業(yè)內(nèi)標(biāo)準(zhǔn),也提供了全套的解決方案來(lái)支持在環(huán)境下使用,提供了開箱即用的組件。 前言 基于SpringCloud做微服務(wù)架構(gòu)分布式系統(tǒng)時(shí),OAuth2.0作為認(rèn)證的業(yè)內(nèi)標(biāo)準(zhǔn),Spring Security OAuth2也提供了全套的解決方案來(lái)支持在Spring Cloud/Spring Boot環(huán)境下使用OAuth2.0,提供了開箱即用的組件。但...
摘要:第三方登錄是現(xiàn)在常見的登錄方式,免注冊(cè)且安全方便快捷。大部分的第三方登錄都參考了的認(rèn)證方法。這里我主要總結(jié)一下第三方登錄組件的設(shè)計(jì)流程。身份認(rèn)證組件,需解耦,至少要喚起登錄和登出事件。認(rèn)證成功喚起登錄事件并將用戶信息傳遞出去。 第三方登錄是現(xiàn)在常見的登錄方式,免注冊(cè)且安全方便快捷。 本篇文章將以Github為例,介紹如何在自己的站點(diǎn)添加第三方登錄模塊。 OAuth2.0 OAuth(開...
摘要:最近基于開發(fā)了一款圖床插件,現(xiàn)在已經(jīng)開源并上架應(yīng)用商店。通過方法把轉(zhuǎn)成,然后放在里測(cè)試一下看來(lái)效果是的,接下來(lái)就是對(duì)圖床插件進(jìn)行開發(fā)的步驟了。至此,整個(gè)插件的開發(fā)發(fā)布流程就已經(jīng)完成了。 showImg(https://user-images.githubusercontent.com/12172868/57382983-8f29b900-71e0-11e9-8fe9-c0f12fd54...
閱讀 1807·2023-04-26 01:44
閱讀 1222·2021-11-12 10:34
閱讀 1611·2021-09-09 09:33
閱讀 1740·2019-08-30 15:44
閱讀 2903·2019-08-30 13:49
閱讀 2199·2019-08-29 15:26
閱讀 953·2019-08-26 13:30
閱讀 1420·2019-08-23 18:15