![](/img/trans.png)
[英]Determining current_user with declarative_authorization and authlogic
[英]Authlogic HTTP Basic UserSession.find returns nil, means declarative_authorization can't get a current_user
使用Authlogic的HTTP Basic身份驗證時,UserSession.find返回nil,因為似乎未設置會話。 結果,引用了常規current_user方法(如下所示)的declarative_authorization找不到當前用戶。
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進行身份驗證時,是否可以創建會話(即使該會話只會持續到請求關閉),還是有更好的方法呢?
撞到這個。 我正遇到相同的問題(使用相同的gem-authlogic + declarative_auth)。
找到適合我的解決方案,我所要做的就是將以下代碼復制到authorization_rules.rb的末尾
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
擺弄了Devise之后,現在一切似乎都可以正常使用,只要使用ActiveResource時我就可以使用site =“ http:// user:password @ domain”而不是:
site = "http://domain"
username = "user"
password = "password"
這不起作用。 我沒有花時間去研究為什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.