0

登录后,它会转到正确的 url(具有匹配的子域),但我仍然看到“注册”或“登录”而不是“以 xxx 身份登录”和“注销”,这意味着user_signed_in?返回 false (current_user未设置)。

这是 application_controller.rb:

private  
def after_sign_in_path_for(resource)
    logger.info root_url(subdomain: current_user.username)
    logger.info user_signed_in?
    root_url(subdomain: current_user.username)
  end

user_signed_in?回到true这里。

它被重定向到的 home_controller.rb:

def show
  logger.info user_signed_in?
  @user = User.find_by_username!(request.subdomain)
end

而这里user_signed_in?返回false.

路线文件:

constraints(Subdomain) do
  match '/' => 'home#show', as: :user
end

root :to => 'home#welcome'

正如 Arun 在评论中所说,我发现问题在于 2 个同名 cookie,但一个用于顶级域,另一个用于子域。

有什么方法可以只删除一个 cookie 或根本不设置它?我试过reset_session了,但它删除了两个cookie。

4

0 回答 0