1

我正在尝试进行非常基本的身份验证。我已经尝试过使用 bcrypt-ruby 和用户身份验证在他的截屏视频中使用的一个 ryan bates。

对于一个非常小的项目,我想使用其他东西:

http_basic_authenticate_with :name => 'user', :password => 'secret'

我有一个名为$admin的全局变量,并且我有一个将其值设置为false的方法(类似于注销)。

有没有办法重置此身份验证,以便用户(管理员)必须再次填写“登录凭据”?

亲切的问候

4

1 回答 1

1

不幸的是,如果basic_auth用户在浏览器窗口关闭之前一直保持登录状态。如果用户使用 登录basic_auth,浏览器会存储认证信息,并在每次请求时通过 http 标头发送认证参数。

但是有一个小问题:使用 登录后basic_auth,当用户浏览您的应用程序并从一个链接转到另一个链接时(例如,从http://appdomain.com/link1http://appdomain.com/link2他实际上是从http://username:password@appdomain.com/link1http://username:password@appdomain.com/link2。浏览器隐藏了地址栏中的username:password@部分,所以您不知道。注销已通过 basic_auth 进行身份验证的用户的一种肮脏方法是创建一个链接或重定向到http://invaliduser@appdomain.com/浏览器不持有身份验证凭据... 编辑: 或作为替代重定向并将用户登录到无权限帐户,该帐户无法通过以下方式查看或在您的应用程序中执行任何操作http://guest:password@appdomain.com

希望它有所帮助。

于 2013-04-18T14:48:06.517 回答