最初我使用基本的http身份验证来按照本指南对设计用户进行身份验证:
http://jessehowarth.com/2011/04/27/ajax-login-with-devise
我成功地验证了用户,但会话仍然永远登录.没有办法破坏用户的会话.事实上,当我添加user_signed_in?在我的create方法中设计的方法,即使通过json注销也总是返回true.所以我得出结论,没有办法使用基本的http身份验证结束会话.您所能做的就是检查用户是否已登录并将状态代码作为json发送回客户端.
然后我尝试了身份验证令牌路由,它允许您使用身份验证令牌创建会话,然后通过删除该身份验证令牌来销毁会话,并且用户必须再次登录才能访问需要身份验证的页面,如在这篇文章中显示:
Devise and Authentication with CURL !
这样做的缺点是,您需要为每个需要身份验证的页面输入这个非常长的字符串,这似乎有点不合需要.我希望这里有两个世界中最好的,你可以像在网络浏览器中一样登录和退出.
我不确定我所说的一切是否准确,但似乎与这篇文章一致:
http authentication in devise and rails 3
在那篇文章中,他说身份验证令牌“比http基本身份验证更安全,因为密钥可能会过期”.我认为他的意思是,一旦您使用基本身份验证登录,那就是它,您将永远登录,而身份验证令牌可以使其过期并强制用户再次登录.这是准确的解释吗?
谢谢你的回复