Rails + deviseで会員登録APIを自前で構築する時の肝
controller/api/user_controller.rb
def create
user = where(email: user_params[:email]).first
if user
if user.confirmed?
fail "already exists"
else
user.password = user_params[:password]
user.send(:generate_confirmation_token!) # protectedメソッドなのでsendを使っている
end
else
user = User.new(
email: user_params[:email],
password: user_params[:password]
)
user.skip_confirmation_notification!
user.save!
end
confirmation_token = user.instance_variable_get('@raw_confirmation_token')
confirmation_url = api_user_confirmation_url(user, confirmation_token: confirmation_token)
UserAppMailer.confirmation_instruction(user, confirmation_url).deliver
render :success
end
def user_params
params.require(:user).permit(:email, :password)
end
- 新しく作成したUserモデルのインスタンスからconfirmation_tokenを取り出します
- userインスタンスと上で取り出したconfirmation_tokenを使ってconfirmationアクションへのurlを作ります
- userにconfirmationアクションへのurlをメールで送信します
- 成功した旨のJSONレスポンスを返します
これでいけた^ ^
Author And Source
この問題について(Rails + deviseで会員登録APIを自前で構築する時の肝), 我々は、より多くの情報をここで見つけました https://qiita.com/SawasakiNarumi/items/f8565809a550057f585a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .