簡體   English   中英

Authlogic HTTP Basic UserSession.find返回nil,這意味着declarative_authorization無法獲取current_user

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM