NextAuth / Auth.js データベーススキーマの説明
NextAuth / Auth.js Database Schema Explained
ショートバージョンのNextAuth (現 Auth.js) は、データベース内の 4 つのテーブルを作成します。 そしてテーブルは、を介して1対1の関係を持っています。 セッションは、利用者にリンクします。 検証トークンは、短時間でセルフクリーニングです。 4テーブルユーザー列タイプ テキスト/UUID プライマリキーを意味します。 NextAuth によって生成される。 テキスト OAuth プロバイダー (Google や GitHub など) のテキスト ユーザのメールから名前を表示します。 プロバイダがそれを共有しない場合は、null になります。 タイムスタンプ 電子メールが確認されたとき。 検証されていない場合、Null。 提供者からのテキストプロファイル画像URL。 タイムスタンプ ユーザーが最初に署名したとき。 timestamp プロバイダーからの最終プロファイルの同期。 パスワード この表は、ユーザを OAuth プロバイダーにリンクします。 複数のアカウント(例、Google + GitHub)を持つことができます。 コラムのタイプ テキスト/UUID を意味します.
ショートバージョンのNextAuth (現 Auth.js) は、データベース内の 4 つのテーブルを作成します。 そしてテーブルは1対1の関係を経由して持っています。 セッションは、ユーザーを経由してリンクします。 検証トークンは、短時間でセルフクリーニングです。 4テーブルユーザー列タイプ テキスト/UUID プライマリキーを意味します。 NextAuth によって生成される。 テキスト OAuth プロバイダー (Google や GitHub など) のテキスト ユーザのメールから名前を表示します。 プロバイダがそれを共有しない場合は、null になります。 タイムスタンプ 電子メールが確認されたとき。 検証されていない場合、Null。 提供者からのテキストプロファイル画像URL。 タイムスタンプ ユーザーが最初に署名したとき。 timestamp プロバイダーからの最終プロファイルの同期。 パスワード この表は、ユーザを OAuth プロバイダーにリンクします。 複数のアカウント(例、Google + GitHub)を持つことができます。 コラムのタイプ テキスト/UUID プライマリキーを意味します。 テキスト 外部キー → . テキスト 常に or . テキスト , , 等 テキスト プロバイダーのユニークなIDは、このユーザーです。 テキスト OAuth リフレッシュ トークン (生産で暗号化)。 テキスト OAuth アクセストークン (生成時に暗号化). アクセストークンの有効期限が切れた場合(Unix タイムスタンプ)。 テキスト 通常 . プロバイダーによって付与されたテキストの許可. テキスト OIDC ID トークン (OIDC を使用する場合)。 テキスト プロバイダー固有のセッション状態。 セッション 各ユーザーのアクティブセッション NextAuth は、すべてのサインインで新しい行を作成します。 コラムのタイプ テキスト/UUID プライマリキーを意味します。 テキスト ユーザーのクッキーに保存されるセッショントークン。 テキスト 外部キー → . タイムスタンプ このセッションが終了すると 認証 トークン 電子メールの検証、パスワードリセットなどの短時間トークン セルフクリーニングの古いトークンは自動的に削除されます。 コラムのタイプ トークンがテキストメールまたはユーザー ID を意味します。 テキスト 実際のトークン値。 タイムスタンプ このトークンの有効期限が切れた場合。 1つのユーザー→1つ以上のアカウント(Google、GitHubなど)を接続する方法 1つのユーザー→多くのセッション(異なるデバイス/ブラウザ) 検証トークンは一時的であり、外部キーを持っていません。 ロールベースのアクセス制御が必要な場合は、列を追加する方法を変更します。 SMS の auth を使用している場合は、列を追加します。 暗号化と生産のNextAuthでは、デフォルトではこれを行うことができません。 一人で離れるには、自動的に管理されているテーブルを変更しないでください。 署名されたJWTの形式を変更しないでください。 直接クエリをしない限り、インデックスを追加しないでください(既にユニークです)。 よくある質問 NextAuth ストアのパスワードは? No. NextAuth は OAuth-first ライブラリです。 パスワードは扱いません。 電子メール/パスワード auth が必要な場合は、bcrypt を使用して、または Clerk や Lucia などのサービスを使用します。 NextAuthテーブルで何が表示されるの? dbdiagramr を使用して接続文字列を貼り付け、NextAuth テーブルのビジュアルスキーマを秒単位で取得します。 ユーザーテーブルにカスタムフィールドを追加できますか? はい。 列をテーブルに直接追加します。 NextAuth は知らないカラムを無視しますので、安全に , , などを追加できます。 ユーザーがアカウントを削除したときにどうなりますか? NextAuth は、デフォルトで削除をカスケードしません。 手動で削除する必要があります。 または外部キー制約に追加します。 Auth.js は NextAuth と同じですか? はい。Auth.js は NextAuth のリブランド版です。 データベーススキーマは同一です。 NextAuth v4 にしている場合は、同じテーブルを使用します.