国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

OAuth2 學習筆記

用戶83 / 2293人閱讀

摘要:而在這背后則是建立在基礎之上。簡化模式的授權許可簡化模式的授權更加適用于移動端的以及應用,因為他們的安全性并不能夠得到保證。除此之外,服務也不會對應用的做唯一性表示驗證,依賴回調的地址。

在日常的網站中,我們經常會看見一些來自社交網站的登錄按鈕,類似使用facebook,twitter登錄等。而在這背后則是建立在OAuth基礎之上。OAuth2是一套提供授權功能的框架,通過它我們可以使第三方站點獲取到我們的用戶授權,就像可以拿到facebook 或者微博的用戶昵稱和頭像。OAuth2 提供了包括桌面,web以及移動端應用的授權功能。

授權角色

授權一般會定義下面四種身份:

用戶

客戶端

資源服務器

授權服務器

用戶

我們通常定義資源的所有者(Resource Owner)即是我們的用戶,是他們允許這些應用去訪問他們自己的賬戶信息。當然這些應用所能訪問的權限是有限的,它被限制在一個受保護的作用域內(比如只能讀取信息,當然這取決于我們自己的設計).

授權服務器和接口服務

用戶請求授權服務后成功后,會返回一個aceess token給應用,這樣應用再訪問其他接口服務時候都需要這個憑證.

客戶端應用

客戶端應用既是用戶當前所用的這個產品了。它通過它用戶授權成功后,可以對用戶的一些信息進行訪問或者修改,但無論如何,再請求用戶信息的時候,我們的api和授權服務必須對它進行合法性驗證。

授權流程

應用注冊

使用授權之前,你必須讓這些客戶端應用登記在案,你需要它提供一些基本的信息名稱比如,應用名稱,網站地址,回調地址等等。其中回調地址既是用戶完成授權后跳向的地址,在那里應用能夠處理我們返回的授權代碼以及access tokens.

Cient ID 以及 Client Secret

當應用注冊完成后,我們會頒布給應用一個授權證書,里面大致記錄了客戶端的唯一識別(client identifier)和客戶端的安全碼(client secret).
Client ID 是一串暴漏的字符串,用戶構建訪問的url以及用于服務器的驗證。Client Secret則被用來認證應用的唯一性,從而保證應用和api服務的私秘性。

授權許可

在前面的流程中,第一步使是獲取授權許可和acess token.授權許可的類型取決于用戶的請求類型。OAuth 2 定義了下面的四種許可類型,它們試用于不同情形。

授權碼,常用于服務端;

簡化模式,常用于移動設備上;

用戶密碼驗證,常用于哪些比較信任的服務,比如團隊內的項目;

客戶端驗證,用于應用api訪問;

授權碼

目前大多數服務端的app授權都適用此方式,它會維護一個 client secret。應用通過客戶端(比如瀏覽器)去獲取API的授權碼;

1.用戶會收到一個授權的url,里面大概會帶上一些基本信息,比如

client_id(應用id),redirect_uri(回調的地址),response_type(許可類型,類似response_type=code)等

2.用戶授權應用,點擊鏈接,用戶會進入授權的界面,會需要用戶確認接受活著拒絕該應用的授權請求。

3.如果用戶點擊了確認授權會掉轉到回調的url,然后帶上授權碼。

http://yousite.com?code=AUTHORIZATION_CODE

4.應用獲取access_token,應用會請求某個api獲取用于訪問接口的access_token。

5.應用會接受到接口的響應,獲取到access_token,有些應用還會帶上refresh_token。

當然拿到access_token后,應用就有權限去訪問開放的一些接口,如果接口過期了,則需要重新授權。如果
返回了帶有refresh_token,則通過refresh_token可以請求一個新的則需要重新獲取新的access_token。

簡化模式的授權許可

簡化模式的授權更加適用于移動端的App以及Web應用,因為他們的安全性并不能夠得到保證。同樣的也是一個簡單的流程,
只是access_token直接返回給客戶端,這樣access_token會直接暴露給用戶,以及設備上的其他應用。除此之外,服務也不會對
應用的做唯一性表示驗證,依賴回調的地址。

簡化模式的授權不支持 refresh_token!

應用首先會通過一個鏈接去請求token;

用戶點擊鏈接后會跳轉到授權的界面,詢問用戶許可;

用戶許可后會直接帶上access_token條會到原地址類似下面:

http://yoursite.com?access_token=ACCESS_TOKEN

客戶端會將帶過來的token保存起來,比如localstorage,cookie;

應用請求其他的api則都會帶上這個access_token了。

用戶密碼驗證的形式

這個形式就是直接將用戶賬戶和密碼拿到后去訪問服務,然后拿到access_token,一般這種模式只用于自己的信任的服務,

比如自己家的產品或者桌面應用等。

應用在拿到用戶的密碼會請求一個地址帶上這些數據

http://oauth.api.xxxx.com?username=USERNAME&password=PASSWORD&clientID=1232112

驗證成功后,授權服務會返回一個access_token,那么現在這個應用就算授權成功。

客戶端驗證

客戶端驗證主要是提供一個方式讓應用去訪問自己的服務賬號,去更新一些描述信息或者回調地址等。通過請求一個地址帶上自己的信任然后去取得一個access_token.

refresh_token的使用

一般access_token都有個時間期限,過期了,訪問其他服務則會受限制,這個時候有的會提供一個獲取新token的接口,你只需帶上refresh_token
以及客戶端的其他信息。

擴展閱讀

理解OAuth 2.0

An Introduction to OAuth 2

The OAuth 2.0 Authorization Framework

hello.js

Thanks ! 圖片設計來源于Digital Ocean

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21580.html

相關文章

  • 說說微信掃碼登錄

    摘要:詳情接口我們這里主要講的是網站應用,網站應用微信登錄是基于協議標準構建的微信授權登錄系統即上面的協議。在微信客戶端授權登錄獲取用戶信息的可以查看。微信授權登錄目前支持模式,適用于擁有端的應用授權。 一、OAuth2.0 OAuth(開放授權)是一個開放標準,允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源(如照片,視頻,聯系人列表),而無需將用戶名和密碼提供給第三方應用。 ...

    Jokcy 評論0 收藏0
  • 簡單學習使用oAuth2方式進行三方登錄

    摘要:登錄方式本來公司項目是正常的用戶名密碼登錄,但是突然轉換成了第三方方式登錄,由此開始學習了該種登錄形式。同普通的用戶名密碼登錄不同,登錄方式中,增加了一個授權層。至此,三方登錄已經成功登錄。 oAuth2 登錄方式 本來公司項目是正常的用戶名、密碼登錄,但是突然轉換成了第三方oAuth2方式登錄,由此開始學習了該種登錄形式。 思路 共有5種授權模式,有授權碼模式、簡化模式、密碼模式、客...

    anquan 評論0 收藏0

發表評論

0條評論

用戶83

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<