我目前正在開發一個應用程序,除了通常的可視化Web應用程序goop外,還將公開一些RESTful API服務供外部應用程序使用。我正在使用Devise來管理用戶身份驗證,但我正在努力如何在給定輸入的情況下「手動」驗證用戶身份。API的rails身份驗證
我遇到的情況是,我希望API的用戶無需登錄屏幕等實際登錄到可視化日誌。我希望他們提交用戶名和密碼,然後進行身份驗證並在其中籤名我的API服務。
我知道您可以使用Devise提供的sign_in
方法對用戶進行簽名,但似乎完全忽略了身份驗證。這裏是我想要做的更詳細的解釋:
假設在用戶控制器中調用connect的GET路由。控制器完全取代設計註冊控制器,但不是第一個會議。該URL我的服務是:
<server>/users/connect
,並期望除了一些具體的和不重要的,以我的問題GOOP服務「電子郵件」,「密碼」參數。
我想知道的是如何實現的東西,相當於以下僞代碼:
def connect
user = User.find_by_email(params[:email])
password = params[:password]
# here is the part I'm pseudo coding out
if user.is_valid_password(password)
...do my stuff...
end
render :json ...etc...
end
我一直無法找到在設計源的方法來做到這一點 - 它是如此的一般化很多方面,我可能只是想念它。
任何人有任何想法?我希望不要a)必須實現我自己的事情,並且b)不必離開Devise。它爲我提供了非API服務...
謝謝!
我已經離開了個
很酷,我會研究這個想法。謝謝:) – jaydel
現在已經棄用了,任何人都知道如何使用新的實現來構建它? – halbano
您應該使用https://github.com/lynndylanhurley/devise_token_auth進行基於標記的設計認證。 – plunntic