在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/PHP/ OAuth2.0密碼授權(quán)模式中,client_id是什么的id?

OAuth2.0密碼授權(quán)模式中,client_id是什么的id?

有博客是這樣解釋的密碼模式:

密碼模式(resource owner password credentials):
用戶(hù)向第三方客戶(hù)端提供自己在授權(quán)服務(wù)端的用戶(hù)名和密碼,客戶(hù)端通過(guò)用戶(hù)提供的用戶(hù)名和密碼向授權(quán)服務(wù)端請(qǐng)求令牌(Access Token)。

Laravel使用密碼授權(quán)的方式需要提交的參數(shù)如下:

$response = $http->post('http://your-app.com/oauth/token', [
    'form_params' => [
        'grant_type' => 'password',
        'client_id' => 'client-id',
        'client_secret' => 'client-secret',
        'username' => 'taylor@laravel.com',
        'password' => 'my-password',
        'scope' => '',
    ],
]);



問(wèn)題:
1、代碼中的client_id是什么id,每個(gè)用戶(hù)每人有一個(gè)client_id還是什么意思?
2、在密碼模式的概念解釋中,涉及到幾個(gè)參與者:
(1)用戶(hù)
(2)第三方客戶(hù)端
(3)授權(quán)服務(wù)端
(4)客戶(hù)端
有點(diǎn)分不清上面4個(gè)誰(shuí)是誰(shuí),請(qǐng)大佬舉個(gè)例子讓它們對(duì)號(hào)入座。謝謝大佬!

回答
編輯回答
瘋浪

client_id是你這個(gè)應(yīng)用在oAuth2網(wǎng)站注冊(cè)的應(yīng)用獲得的。

比如騰訊吧,雖然騰訊不一定是密碼模式,但是這里舉個(gè)例子。

如果你是一個(gè)A網(wǎng)站,需要獲取用戶(hù)在騰訊的賬戶(hù)信息,那么你需要在騰訊注冊(cè)你的應(yīng)用,獲取你的client_id。
這樣在認(rèn)證的時(shí)候,騰訊的OAuth就可以區(qū)分這個(gè)用戶(hù)授權(quán)了哪些應(yīng)用(你的A網(wǎng)站或者別人的B網(wǎng)站)。

A網(wǎng)站和B網(wǎng)站都有各自的client_id,騰訊根據(jù)這個(gè)id來(lái)區(qū)分用戶(hù)給予的授權(quán)

當(dāng)然了,為了防止偽造,還會(huì)另外有一個(gè)clinet_secret用于確認(rèn)你使用的client_id確實(shí)是你這個(gè)網(wǎng)站所持有的。

還有你所不理解的幾個(gè)參與者。
還是以上面的例子解釋。

  • 用戶(hù) 是騰訊的用戶(hù),A網(wǎng)站或者B網(wǎng)站需要用戶(hù)的授權(quán)來(lái)獲取用戶(hù)的騰訊賬戶(hù)的信息。
  • 第三方客戶(hù)端 就是A網(wǎng)站或者B網(wǎng)站的手機(jī)APP(網(wǎng)頁(yè))之類(lèi)的。
  • 授權(quán)服務(wù)端 就是指騰訊啦
  • 客戶(hù)端 就是指A網(wǎng)站或者B網(wǎng)站的服務(wù)器

至于為什么要分成第三方客戶(hù)端客戶(hù)端,這個(gè)主要是為了secret_id保密,如果你的secret_id直接寫(xiě)在用戶(hù)應(yīng)用當(dāng)中,那么誰(shuí)都可以用你的A網(wǎng)站的身份去獲取用戶(hù)的信息了。所以secret_id只能保存在后臺(tái)。

所以在這里可以理解成客戶(hù)端就是指A網(wǎng)站的服務(wù)器,在面對(duì)騰訊的Oauth授權(quán)的情況下,騰訊是授權(quán)服務(wù)端,A網(wǎng)站后臺(tái)是授權(quán)的客戶(hù)端。


暫時(shí)就寫(xiě)這么點(diǎn),有說(shuō)錯(cuò)或者還有不理解的話后面再補(bǔ)充

2017年3月25日 21:52
編輯回答
青黛色

第二個(gè)問(wèn)題
以某小游戲支持微信登錄舉例:
(1)用戶(hù):你
(2)第三方客戶(hù)端:小游戲
(3)授權(quán)服務(wù)端:微信
(4)客戶(hù)端:這里說(shuō)的就是第三方客戶(hù)端,也就是小游戲

密碼模式就是你在小游戲里面輸入微信的賬號(hào)密碼,然后小游戲拿著這個(gè)去向微信要token,然后小游戲用這個(gè)token去訪問(wèn)微信的api以獲取你的信息或資源(所以這種方式是不太推薦的,因?yàn)槟愕奈⑿刨~號(hào)密碼告訴了第三方小游戲)


第一個(gè)問(wèn)題
client_id 就是小游戲向微信注冊(cè)時(shí)微信給的,表示小游戲身份的 id
client_secret 就是對(duì)應(yīng)的秘鑰啦

2017年3月7日 08:32