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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

andpods授权码订单号分享_微信OAuth2授权登录

發(fā)布時(shí)間:2025/3/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 andpods授权码订单号分享_微信OAuth2授权登录 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

第三方登錄是應(yīng)用開(kāi)發(fā)中的常用功能,通過(guò)第三方登錄,我們可以更加容易使用戶登錄我們的應(yīng)用或者網(wǎng)站。

很多網(wǎng)站都提供了第三方登錄的功能,在他們的官網(wǎng)中,都提供了如何接入第三方登錄的文檔。但是,假如不同的網(wǎng)站文檔差別極大,那么對(duì)于不了解第三方登錄的新手來(lái)說(shuō),實(shí)現(xiàn)一個(gè)支持多網(wǎng)站第三方登錄的功能可以說(shuō)是極其痛苦。

實(shí)際上,大多數(shù)網(wǎng)站提供的第三方登錄都遵循OAuth協(xié)議,雖然大多數(shù)網(wǎng)站的細(xì)節(jié)處理都是不一致的,甚至?xí)贠Auth協(xié)議進(jìn)行擴(kuò)展,但大體上其流程是一定的。

本篇文章以微信網(wǎng)頁(yè)授權(quán)來(lái)介紹OAuth2.0中最經(jīng)典最常用的一種授權(quán)模式:授權(quán)碼模式

OAuth是什么?

OAuth(開(kāi)放授權(quán))是一個(gè)開(kāi)放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問(wèn)該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源(如照片,視頻,聯(lián)系人列表),而無(wú)需將用戶名和密碼提供給第三方應(yīng)用。

允許用戶提供一個(gè)令牌而不是用戶名和密碼來(lái)訪問(wèn)他們存放在特定服務(wù)提供者的數(shù)據(jù)。每一個(gè)令牌授權(quán)一個(gè)特定的網(wǎng)站(例如,視頻編輯網(wǎng)站)在特定的時(shí)段(例如,接下來(lái)的2小時(shí)內(nèi))內(nèi)訪問(wèn)特定的資源(例如僅僅是某一相冊(cè)中的視頻)。這樣,OAuth允許用戶授權(quán)第三方網(wǎng)站訪問(wèn)他們存儲(chǔ)在另外的服務(wù)提供者上的信息,而不需要分享他們的訪問(wèn)許可或他們數(shù)據(jù)的所有內(nèi)容。

OAuth2.0官方文檔為:https://tools.ietf.org/html/rfc6749

為什么是OAuth2.0呢?其實(shí)是有1和1.1版本的,只是因?yàn)?和1.1版本流程比較復(fù)雜,應(yīng)用不是很廣泛。

授權(quán)碼模式流程

授權(quán)碼模式(authorization code)是功能最完整、流程最嚴(yán)密的授權(quán)模式。它的特點(diǎn)就是通過(guò)客戶端的后臺(tái)服務(wù)器,與 "服務(wù)提供商" 的認(rèn)證服務(wù)器進(jìn)行互動(dòng)。

整體大致過(guò)程如下:

OAuth2.0應(yīng)用場(chǎng)景

我們這里主要模擬在微信公眾號(hào)中使用OAuth2.0進(jìn)行授權(quán),獲取用戶的基本信息的過(guò)程。

第1步:引導(dǎo)用戶進(jìn)行授權(quán):

當(dāng)用戶希望使用第三方登錄進(jìn)行登錄時(shí),第三方應(yīng)用會(huì)通過(guò)類似下圖的方式將用戶引導(dǎo)至授權(quán)頁(yè)面URL。

登錄方式

如:需要獲取微信用戶信息時(shí),需要引導(dǎo)用戶點(diǎn)擊請(qǐng)求如下授權(quán)頁(yè)面URL。

//open.weixin.qq.com/

請(qǐng)求參數(shù)詳細(xì)介紹如下

參數(shù)必須說(shuō)明
appid公眾號(hào)的唯一標(biāo)識(shí)
redirect_uri授權(quán)后重定向的回調(diào)鏈接地址, 請(qǐng)使用 urlEncode 對(duì)鏈接進(jìn)行處理
response_type返回類型,只能填寫(xiě)code
scope應(yīng)用授權(quán)作用域
snsapi_base (不彈出授權(quán)頁(yè)面,直接跳轉(zhuǎn),只能獲取用戶openid)
snsapi_userinfo (彈出授權(quán)頁(yè)面,可通過(guò)openid拿到昵稱、性別、所在地等。并且即使在未關(guān)注的情況下,只要用戶授權(quán),也能獲取其信息 )
state重定向后會(huì)帶上state參數(shù),開(kāi)發(fā)者可以填寫(xiě)a-zA-Z0-9的參數(shù)值,最多128字節(jié)
#wechat_redirect無(wú)論直接打開(kāi)還是做頁(yè)面302重定向時(shí)候,必須帶此參數(shù)

第2步:用戶授權(quán)

當(dāng)我們點(diǎn)擊授權(quán)頁(yè)面URL時(shí),會(huì)出現(xiàn)以下授權(quán)頁(yè)面

微信授權(quán)頁(yè)面

該頁(yè)面由認(rèn)證服務(wù)器提供,認(rèn)證服務(wù)器會(huì)告訴用戶該第三方在認(rèn)證服務(wù)器中提交的相關(guān)信息,以及授權(quán)后第三方應(yīng)用能夠獲取哪些資源。在微信中,最基礎(chǔ)的認(rèn)證可以訪問(wèn)用戶的公共信息。

第3步:返回用戶授權(quán)碼(Code)

當(dāng)用戶同意授權(quán)后,認(rèn)證服務(wù)器將生成一個(gè)用戶授權(quán)碼(Code),此時(shí)認(rèn)證服務(wù)器如何將用戶授權(quán)碼(Code)傳遞給第三方應(yīng)用呢?

當(dāng)我們向認(rèn)證服務(wù)器提交應(yīng)用信息時(shí),通常需要填寫(xiě)一個(gè)redirect_uri,在微信公眾號(hào)的接口權(quán)限中

點(diǎn)擊修改(授權(quán)回調(diào)域名配置規(guī)范為全域名并且不帶http)

服務(wù)器中填寫(xiě)回調(diào)域名

在第1步中,當(dāng)我們引導(dǎo)用戶進(jìn)入授權(quán)頁(yè)面時(shí),也會(huì)附帶一個(gè)redirect_uri的信息。當(dāng)認(rèn)證服務(wù)器驗(yàn)證兩個(gè)域名一致或在該域名的子域名下,便會(huì)通知瀏覽器跳轉(zhuǎn)到redirect_uri,同時(shí)會(huì)在后面附加用戶授權(quán)碼(code)的相關(guān)信息。授權(quán)后訪問(wèn)的redirect_uri如下:

//xxx.com/oauth2?code=0217LHck2XfL3D0sbVfk2cFIck27LHcB&state=

注意:code作為換取access_token的票據(jù),每次用戶授權(quán)帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動(dòng)過(guò)期。

第4步:換取網(wǎng)頁(yè)授權(quán)access_token

要拿到認(rèn)證服務(wù)器的授權(quán),大致都需要以下幾個(gè)信息:

  • client_id 標(biāo)識(shí)第三方應(yīng)用的id,由認(rèn)證服務(wù)器(微信)在第三方應(yīng)用提交時(shí)頒發(fā)給第三方應(yīng)用

  • client_secret 第三方應(yīng)用和認(rèn)證服務(wù)器之間的安全憑證,由認(rèn)證服務(wù)器(微信)在第三方應(yīng)用提交時(shí)頒發(fā)的

  • code 第3步中認(rèn)證服務(wù)器返回的授權(quán)碼

  • state 由開(kāi)發(fā)者給出的隨機(jī)碼,可選項(xiàng)

在微信中請(qǐng)求方法為

https:/

當(dāng)認(rèn)證服務(wù)器拿到上述中的所有信息,驗(yàn)證通過(guò)后,會(huì)將access_token返回給第三方應(yīng)用。

注意:由于微信公眾號(hào)的secret和獲取到的access_token安全級(jí)別都非常高,必須只保存在服務(wù)器,不允許傳給客戶端。后續(xù)刷新access_token、通過(guò)access_token獲取用戶信息等步驟,也必須從服務(wù)器發(fā)起。

第5步:請(qǐng)求訪問(wèn)用戶資源

拿到網(wǎng)頁(yè)授權(quán)驗(yàn)證憑證(access_token)后,剩下的事情就很簡(jiǎn)單了,資源服務(wù)器會(huì)提供一系列關(guān)于用戶資源的API,拿驗(yàn)證憑證(access_token)訪問(wèn)相應(yīng)的API即可。

例如,在微信中,通過(guò)網(wǎng)頁(yè)授權(quán)access_token、openid獲取用戶信息的請(qǐng)求方法:

//api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

如果網(wǎng)頁(yè)授權(quán)驗(yàn)證憑證(access_token)是正確的,此時(shí)資源服務(wù)器就會(huì)返回資源信息,此時(shí)整個(gè)OAuth2流程就結(jié)束了。

注:本文為Yolo原創(chuàng),未經(jīng)許可不得在任何平臺(tái)轉(zhuǎn)載,侵權(quán)必究。如需轉(zhuǎn)載,可關(guān)注微信公眾號(hào):技術(shù)訓(xùn)練營(yíng),在后臺(tái)留言,與作者聯(lián)系,取得許可才能轉(zhuǎn)載~

微信掃一掃,發(fā)現(xiàn)更精彩。

總結(jié)

以上是生活随笔為你收集整理的andpods授权码订单号分享_微信OAuth2授权登录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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