ruby-on-rails – Rails 3 – 基本的http身份验证与使用iphone的
最初我使用基本的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基本身份验证更安全,因为密钥可能会过期”.我认为他的意思是,一旦您使用基本身份验证登录,那就是它,您将永远登录,而身份验证令牌可以使其过期并强制用户再次登录.这是准确的解释吗? 谢谢你的回复 解决方法
HTTP身份验证的工作方式,一旦浏览器登录(即发送WWW-Authenticate标头),它将保持登录状态,直到其HTTP身份验证缓存过期(通常在您退出浏览器时).
由于浏览器继续在HTTP身份验证中发送有效凭据(没有“HTTP注销”),这就是您看到用户仍然登录的原因. 我的建议是在Devise中使用authentication_token功能并将?auth_token传递给您的API.请记住,即使它是POST / DELETE / PUT /等,您也必须将它们作为URL的一部分传递. (这是一个可能现在修复的Devise bug). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – Rails:帮助程序中的控制器方法
- ruby-on-rails – 如何解决“错误的参数(预期的U
- xsl with xml with root element中的属性不起作用
- HBuilder 打包 vue-cli 构建的 APP
- c# – 向asp.net gridview添加一个复选框列
- 当我使用GNU C Library提供的非标准函数时,Clang
- Ruby Lambda与Proc LocalJumpError
- dart – Flutter构造函数错误
- WIN7+VS2012+COCOS2D-X 3.7创建的项目移植到ipho
- Java中ArrayList的使用方法简单介绍