2012-03-10 51 views
1

我想使用devise'token_authenticatable helper根据系统验证用户。如何使用设计验证令牌

我发现了一些较旧的文档,其中使用了一个名为valid_authentication_token?(...)的方法,但在较新的设计版本中找不到相同的文档。

那么认证用户的正确方法是什么? 我是否应该为具有命名标记的用户请求模型并检查电子邮件地址是否匹配?

非常感谢你的帮助。

PascalTurbo

回答

6

如果添加

t.token_authenticatable 

给你的用户ActionRecord,并添加

devise :token_authenticatable 

到您的用户模型

,并指定其参数是在你的令牌密钥config/initializer/devise,如下所示:

config.token_authentication_key = :auth_token 

然后控制器使用

before_filter :authenticate_user! # Tell devise to use :user map 

进行身份验证。发生authenticate_user!之后,单个方法可以测试使用

user_signed_in? 

将授权用户或者通过登录会话或查询字符串传递或通过使用HTTP基本身份验证的色器件授权令牌。详情请参阅设计助手code

+0

你确定“load_and_authorize_resource”是devise的一部分吗?我找不到任何文件回合 - 但很多“cancan”的条目 – PascalTurbo 2012-03-10 21:15:13

+0

对不起,混淆了我的设计和康康电话。我们使用两者。我已经使用before_filter authenticate_user更新了我的答案!来自Devise。 – 2012-03-10 21:25:13

+0

@SteveWilhelm您写了“..设计授权令牌传递查询字符串...”。你能告诉我怎么做,当我发送一个POST请求到一个JSON API? – JJD 2013-01-13 18:49:25