Open5
NextAuth.jsにおけるSessionの更新
Session
のメールアドレスや名前,追加で持たせている情報を更新したときクライアントのSession
を更新したいときがあると思う.
しかし,JWTモードではセッション情報はサインイン時の情報を保持し続けるためデータベースなどを更新してもクライアントは更新しない.
データベースモードでは更新するすべがあるらしいが公式は声を大にして紹介できるものではないっぽい.
NextAuthの仕様上更新はあきらめざるを得ないようで,セキュリティ的に考えて正攻法で行うのは断念.
ではどうするのかというと,グリッチというほどでもないがもう一度サインイン処理をして強制的にデータベースを参照させればいい.
サインインがCredentialsの場合には完全に裏側で処理を,OAuthを使っている場合にはもう一度認可処理をかませれば更新される.
「変更を反映するにはもう一度サインインする必要があります」みたいな文言を添えればいかにも古臭い認証システムの出来上がり.
Client Componentsでは更新可能