はじめに
こんにちは、torihaziです。
最終章になって欲しいです。
はい、続き。
現状。
device-token-auth使って登録まではいけました。
あとは確認の時にDBのエラーログが出てたのでそれの確認と
解消ができたらいいかなと。

これは登録した後に飛んでくる認証メールに付随している
リンクをクリックしたときのログです。
DeviseTokenAuth::ConfirmationsController#show
に飛んでいってなんかやってるみたいですね。
ほどほどに探検してみます。
なんとなくわかったような。
とりあえず試しにcurlで飛ばしてみる。
あれ、てかなんかconfirm_success_urlのエラーが消えてる。

あ、そうか。curlにconfirm_success_urlつけてないからか。
納得。
で話は戻って、さっきのConfirmationsControllerの件
いろいろやっているとどうやら全ての処理が終わった後に
after_confirmationという処理をオーバライドすることで
カスタマイズできるらしい、
今回は認証が終わったらuserをアクティベートさせる予定で
それ用のis_active (default: false)もつけているので
それをtrueにするような処理を加える。
以下、user.rb
# frozen_string_literal: true
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable,
:confirmable
include DeviseTokenAuth::Concerns::User
scope :active, -> { where(is_active: true) }
scope :inactive, -> { where(is_active: false) }
def deactivate!
update!(is_active: false)
end
def activate!
update!(is_active: true)
end
def after_confirmation
self.activate!
end
end
この状態で、届いたメールをクリックすると

2つ目のとこがその処理が入って見事にis_active: trueという
userが出来上がり。
退会するときはis_active: falseにして論理削除みたいなことしようかなと。
そういうふうに考えている。
赤字はいろいろ出てるけど、なんとかなると思うのでとりあえず
これにてapi側の探検は終了。
ということで終わり。次のフロントはかける気力があったら書こうと思う。
終わりに
長旅お疲れ様でした。
疲れました。
まだまだコードリーディングに慣れていないと感じました。
何はともあれ、ちゃんちゃん。