我目前正在开发一个应用程序,除了通常的可视化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