2016-01-20 38 views
0

因此,我通過遵循devise/oauth wiki,成功地在Rails 4應用程序中設置了裸露的骨骼github oauth應用程序流。用戶通過github登錄,驗證他們的憑據,並重定向到Rails應用程序頁面,顯示一切順利。如何只允許特定github團隊的成員通過oauth訪問某個資源?

我想只允許團隊或特定回購的某些用戶能夠使用他們的github憑證向Rails 4應用程序進行身份驗證。除了使用範圍用戶如下:

config.omniauth :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'], callback_url: "https://stackoverflow.com/users/omniauth_callbacks", scope: "user:email,user:follow" 

是它簡單,因爲它更改爲:

scope: read:org 

我對github's scopes意思有點不清楚。

編輯:

下面Tetiana的回答讓我認識到我誤解範圍。我的新理解如下:Github範圍控制對用戶Github數據的訪問級別。一旦Rails應用程序具有此訪問權限,那麼Rails應用程序就可以查詢用戶屬於哪個團隊,並且他們是否屬於某個團隊,然後允許他們訪問Rails資源。這種理解是否正確?

+0

請在您的問題中添加更多詳細信息。你如何決定誰可以驗證你的Rails應用程序? –

回答

1

爲了澄清github上範圍(不僅github上這是OAuth的的部分consept選中此article瞭解更多):

作用域不與你原來的問題連接。他們只能指定代表用戶可以在應用程序中執行哪些操作。

例如,如果範圍是用戶:電子郵件,您可以通過Rails應用程序獲取用戶的github電子郵件。您可以發送OAuth請求並獲取此信息。但是,您無法獲得其他個人資料信息,因爲它是一個不同的範圍(用戶)。

相關問題