2017-02-22 8 views
0

私は、ユーザーのコントローラの作成アクションにコードを入れるべきであることは知っていますが、どのコードがわからないのですか。サインアップした後、ユーザーはどのようにしてユーザーにログインできますか?

これは私のコントローラのコードです:確か

# frozen_string_literal: true 
class UsersController < ProtectedController 
    skip_before_action :authenticate, only: [:signup, :signin] 

    # POST '/sign-up' 
    def signup 
    user = User.create(user_creds) 
    if user.valid? 
     render json: user, status: :created 
    else 
     render json: user.errors, status: :bad_request 
    end 
    end 

    # POST '/sign-in' 
    def signin 
    creds = user_creds 
    if (user = User.authenticate creds[:email], 
           creds[:password]) 
     render json: user, serializer: UserLoginSerializer, root: 'user' 
    else 
     head :unauthorized 
    end 
    end 

    # DELETE '/sign-out/1' 
    def signout 
    if current_user == User.find(params[:id]) 
     current_user.logout 
     head :no_content 
    else 
     head :unauthorized 
    end 
    end 

    # PATCH '/change-password/:id' 
    def changepw 
    if !current_user.authenticate(pw_creds[:old]) || 
     (current_user.password = pw_creds[:new]).blank? || 
     !current_user.save 
     head :bad_request 
    else 
     head :no_content 
    end 
    end 

    def index 
    render json: User.all 
    end 

    def show 
    user = User.find(params[:id]) 
    render json: user 
    end 

    def update 
    head :bad_request 
    end 

    private 

    def user_creds 
    params.require(:credentials) 
      .permit(:email, :password, :password_confirmation) 
    end 

    def pw_creds 
    params.require(:passwords) 
      .permit(:old, :new) 
    end 

    private :user_creds, :pw_creds 
end 
私は私の作成ユーザーに何か

を変更する必要があります知っている

なく

iは看板の下に=ユーザーを@current_user使用しようとしましたそれは仕事をしなかった。

+1

あなたはdevise gemを使用していますか? – theBrezilien

答えて

0

登録時にユーザーにサインインしますか?

# POST '/sign-up' 
def signup 
    user = User.create(user_creds) 
    if user.valid? 
    User.authenticate(user_creds[:email], user_creds[:password]) 
    render json: user, status: :created 
    else 
    render json: user.errors, status: :bad_request 
    end 
end 
+0

ええ、それは私が欲しかったことです。あなたの提案はうまくいっていません – momo

+0

あなたはdeviseを使用していますか? –

+0

私はdeviseを使用しません – momo

関連する問題