2016-11-23 71 views
3

我沒有特定的技術問題,但是瞭解使用Auth0進行身份驗證並使用返回的配置文件訪問Rails API的體系結構的常見問題。使用Rails API的Auth0

我在React Native中使用Auth0.Lock,可以成功註冊並登錄到我的React Native App並存儲返回的配置文件和令牌。

在Rails方面,我根據實現JWT身份驗證的說明創建了API並設置了Knock(https://github.com/nsarno/knock)。

我不明白的是我的用戶模型在Rails和我的數據庫在Auth0之間的鏈接。 Auth0文檔或Knock文檔都不清楚這種關聯是如何發生的。

感謝 克雷格

回答

0

從尋找到下一個可用文檔應該是可能的。

通過定義appropriate scope,您可以指示Auth0在作爲成功驗證結果返回的ID令牌中包含特定信息 - 聲明。

如果所有的用戶配置文件信息包含在令牌本身就可以使用爆震這種方式,它會創建一個從JWT有效載荷本身的用戶模型實例而不需要額外的查詢門店。


默認情況下,敲假設有效載荷爲包含實體ID的主題(分)要求,並呼籲找到模型。 如果您想要修改此行爲,請在您的實體模型中實施一個類方法from_token_payload,該方法採用參數中的有效內容。

class User < ActiveRecord::Base 
    def self.from_token_payload payload 
    # Returns a valid user, `nil` or raise 
    end 
end 

(來源:Knock Customization


通過這種方法令牌本身是充分的,有滑軌API和Auth0之間沒有進一步的相互作用。用戶模型是從令牌創建的,Auth0數據庫不是直接通過Rails API訪問的,它只是使用存儲在那裏的信息和表面上的令牌。

應該可以去用用Auth0數據庫更爲直接的互動的其他方法。如果你需要走這條路線,你應該看看Management API (user related endpoints)的方法可以讓你從自己的應用程序的Auth0數據庫交互。

+0

非常感謝,這給了我幾件事看它。我會讓你知道我怎麼走。 – Klinsey

1

我已經創建了兩個示例項目,rails APIfront-end app,它們說明了rails中的auth0集成。我假定範圍索賠存在於令牌中,以在非常基本的層面上證明授權在這種情況下的工作方式。

的前端使用AngularJS,但作爲邏輯是非常基本的,並且可以很容易地在任何框架被改寫,這是無關緊要的大多。

正如joão-angelo所暗示的那樣,使用令牌大多數情況下都不需要擁有用戶模型,當然,您可以在運行時將用戶類定義爲便捷包裝,但不必將其存儲在數據庫中。事實上,讓用戶模型生活在您的應用和auth0中可能會產生反效果,因爲您必須保持同步。

希望這會有所幫助!