2012-03-01 2 views
0

하위 도메인이있는 응용 프로그램이 있습니다. 사용자가 루트 도메인에 로그인 할 때. 그/그녀의 회사 하위 도메인으로 리디렉션하고 싶습니다. 나는 궁리를하고있다.레일에 params가있는 redirect_to

이것은 내가 지금까지

def create 
    subdomain = request.subdomain 
    user = User.find_by_email(params[:user][:email]) 
    if subdomain.present? 
    resource = warden.authenticate!(auth_options) 
    set_flash_message(:notice, :signed_in) if is_navigational_format? 
    sign_in(resource_name, resource) 
    redirect_to statistics_url 
    else 
    redirect_to sign_in_at_subdomain_url(:subdomain => user.firm.subdomain), :params => params 
    end 
end 

def sign_in_at_subdomain 
    resource = warden.authenticate!(auth_options) 
    set_flash_message(:notice, :signed_in) if is_navigational_format? 
    sign_in(resource_name, resource) 
    redirect_to statistics_url 
end 

사용자 로그인은 로그인 폼 물마루

는, params를 만들기 행동에 보내지는이 인증을 위해 사용을 고안하는 것입니다. 내 코드에서 볼 수 있듯이 하위 도메인이 존재할 때 로그인은 훌륭하게 작동하지만 존재하지 않으면 하위 도메인과 sign_in_at_subdomain으로 리디렉션하고 싶습니다.

parmas 양식에서 sign_in_at_subdomain 액션에 create 액션을 통해 양식을 전달하려면 어떻게해야합니까?

답변

1

after_sign_in_path_for을 사용하여 root romain의 사용자를 sign_out하고 자신이 속한 하위 도메인에 로그인 할 수 있습니다. 다음은 example Rails 3 app with basecamp like subdomains and authentication (Devise 사용)의 것입니다.

+0

이 방법을 사용했지만 필자는 좋지 않습니다. user.loginable_token 아래에 데이터베이스에 토큰을 저장합니다. valid_user_url로 이동하면 데이터베이스에서 사용자를 가져와 현재 하위 도메인에 기록합니다. 그것은 복잡해 보인다. 필자는 로그인 양식으로 params를 전달하고자합니다. –

+0

이것은 내가 결국 해결 해낸 해결책이었습니다. 그것은 최고의 하나입니다. –