2017-09-30 2 views
3

나는 Devise를 인증에 사용하고 있습니다. 이미 사이트에 로그인했습니다. 로그인 후 사용자회사을 생성합니다. 어떻게하면 현재 세션을 파괴하고 새로 생성 된 사용자에 대한 새 세션을 만들 수 있습니까?이미 로그인 사용자 세션을 무효화하는 방법 + devise + 레일

코드를 확인하십시오.

sessions_controller.rb

class Users::SessionsController < Devise::SessionsController 
    # before_action :configure_sign_in_params, only: [:create] 

    # GET /resource/sign_in 
    # def new 
    # super 
    # end 

    # POST /resource/sign_in 
    # def create 
    # super 
    # end 

    # DELETE /resource/sign_out 
    # def destroy 
    # super 
    # end 

    # protected 

    # If you have extra params to permit, append them to the sanitizer. 
    # def configure_sign_in_params 
    # devise_parameter_sanitizer.permit(:sign_in, keys: [:attribute]) 
    # end 
end 

---- 여기> routes.rb

Rails.application.routes.draw do 

    devise_for :users, controllers: { 
      sessions: 'users/sessions' 
     } 
    root to: "companies#index" 

    resources :companies do 
    end 
    resources :company_users do 
    end 

end 

----> companies_controller

def create 
    @company = Company.new(company_params) 
    respond_to do |format| 
     if @company.save 
     format.html { redirect_to @company, notice: 'Company was successfully created.' } 
     format.json { render :show, status: :created, location: @company } 
     else 
     format.html { render :new } 
     format.json { render json: @company.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

내가 ---- 오전> 내 사용자 및 회사를 생성합니다. 이 완료 후 새로 생성 된이 사용자에 대한 세션 만들기를 원합니다.

어떤 제안도 환영합니다. 특정 답변을 해주시기 바랍니다. 고마워.

+0

더 정교하게 세션을 재설정하거나 사용자를 가장 할 수 있습니까? ?? –

+0

내 해결책을 찾았습니다. 필자가 작성한대로 현재 사용자 세션을 닫고 새 사용자를위한 새 세션을 만들고 싶습니다. – wish

답변

3

내 생각 엔 회사에는 많은 사용자가 있습니다. 당신이 최근에 만든이 회사의 첫 번째 사용자 로그인하려는 경우 귀하의 회사를 만든 후, 당신은

reset_session sign_in @company.users.first

처럼 어떤 일을 할 수 있습니다.

reset_session은 현재 세션을 삭제하는 레일스 메소드이며 sign_in object은 모든 사용자로 로그인하는 데 사용할 수있는 방법입니다.

도움이 될 것입니다.