首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Authlogic HTTP Basic UserSession.find返回nil,表示declarative_authorization无法获取current_user

Authlogic HTTP Basic UserSession.find返回nil,表示declarative_authorization无法获取current_user
EN

Stack Overflow用户
提问于 2010-09-27 00:15:21
回答 2查看 907关注 0票数 0

当使用Authlogic的HTTP Basic auth时,UserSession.find返回nil,因为似乎没有设置会话。因此,引用通常的current_user方法(如下所示)的declarative_authorization无法找到当前用户。

代码语言:javascript
复制
def current_user_session
    return @current_user_session if defined?(@current_user_session)
    @current_user_session = UserSession.find
end

def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.record
end

是否可以在用户通过HTTP basic进行身份验证时创建一个会话(即使该会话只会持续到请求关闭),或者有没有更好的方法来做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-15 19:15:00

在摆弄了一下设计之后,现在一切似乎都正常了,只要我在使用ActiveResource时做了site = "http://user:password@domain",而不是:

代码语言:javascript
复制
site = "http://domain"
username = "user"
password = "password"

这不管用。我没有花时间去挖掘其中的原因。

票数 0
EN

Stack Overflow用户

发布于 2010-10-15 01:36:05

撞到这个了。我也遇到了同样的问题(使用相同的gems authlogic + declarative_auth)。

为我找到了解决方案,我所需要的就是将以下代码复制到authorization_rules.rb的末尾

代码语言:javascript
复制
privileges do
  privilege :manage, :includes => [:create, :read, :update, :delete]
  privilege :read, :includes => [:index, :show]
  privilege :create, :includes => :new
  privilege :update, :includes => :edit
  privilege :delete, :includes => :destroy
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3798653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档