2014-04-06 95 views
0

我用的OAuth2代碼爲我的API服務器從githhub:https://github.com/lucadegasperi/oauth2-server-laravel哨兵與OAuth2用戶服務器

而不是使用標準Laravel驗證,我想用哨兵,因爲哨兵有很多的功能,用於發送郵件,禁令,批准登記,...

我在我的API服務器上成功地創建了我的客戶端(Laravel with Guzzle插件)的連接,但是我無法保留Sentry會話。它是好的,還是不是?我如何知道我的用戶在API服務器上的權限,組或任何內容。對於每個呼叫API,我發送access_token,但對於OAuth2來說已足夠。例如:我不知道如何保留Sentry會話,例如:

我使用版主權限用戶登錄,並向API發送新請求以獲取一些版主信息,我不知道它是版主或管理員還是什麼,因爲我沒有哨兵會話。

也許oauth:scope1,scope2就足夠了,也許我不需要Sentry,但是我沒有Sentry的特性(請看本文的開頭部分)。

我相信我的問題微不足道,但我不知道如何解決這個問題。我沒有任何想法:(

回答

4

你的問題是,你的oauth2的理解是有漏洞的oauth2是authentication not authorization

一般用的oauth2你將有三臺服務器:。

  1. 認證服務器(我是我說我是誰?)
  2. 授權服務器(我該怎麼辦?)
  3. 資源服務器(你的API)

現在服務器2和3可以(並且通常是)相同的事情,在這種情況下,它可能是您要查詢的模型。

會發生什麼事是您的用戶首先與認證服務器通話並說,我是這個用戶
如果認證服務器認爲他們發給了一個令牌以用於請求到您的資源服務器(中間還有幾個步驟,但您的問題似乎意味着您理解了這些步驟)。

當使用訪問令牌向資源服務器發出請求時,資源服務器會詢問認證服務器「這個人是誰?」驗證令牌。 (此時,您將從認證服務器接收到令牌的鏈接標識,這是應用程序的其餘部分將知道該用戶的標識)。

資源服務器然後詢問授權服務器「這個人可以做什麼」或「這個人可以採取行動x?」

資源服務器收到來自授權服務器的授予或拒絕響應,並且提供響應或引發訪問被拒絕的響應。

希望這應該可以幫助你跟蹤哨兵和oauth2之間的區別。