起初我是用基本的HTTP验证与设计一个验证用户遵循本指南:的Rails 3 - 基本的HTTP认证VS认证令牌与iPhone
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
在这一岗位上,他说,认证令牌是“从1995年起HTTP基本身份验证更安全密钥可以过期“。我认为他的意思是说,一旦您使用基本身份验证进行登录,就是这样,您永远登录,而身份验证令牌可以使其过期并强制用户再次登录。这是准确的解释吗?
感谢响应
我注意到您将HTTP方法设置为POST并设置X-HTTP-Method-Override标头,而不是将HTTP方法设置为DELETE。您是否试过 'curl -H'Content-Type:application/json'\ -H'Accept:application/json' -X DELETE \ http:// localhost:3000/users/sign_out \ -d' {“remote”:“true”,“commit”:“退出”,“utf8”:“✓”,“用户”:{“remember_me”:“1”,“password”:“password” :“[email protected]”}}'\ -c cookie'? –
我重新格式化了问题,所以现在只是一个是或否的问题。尽管仍然没有回应。 – JohnMerlino