
ユーザー管理とJWTトークン発行のためのJWTベースのAPI
# Auth - Supabaseによる認証とユーザー管理
[](https://coveralls.io/github/supabase/auth?branch=master)
Authは、Goで書かれたユーザー管理・認証サーバーであり、[Supabase](https://supabase.com) の以下のような機能を支えています:
- JWTの発行
- PostgRESTによる行レベルセキュリティ
- ユーザー管理
- メール、パスワード、マジックリンク、電話番号でのサインイン
- 外部プロバイダーでのサインイン (Google、Apple、Facebook、Discord、...)
これは元々、優れた [NetlifyによるGoTrueコードベース](https://github.com/netlify/gotrue) に基づいていますが、両者は機能と能力において大幅に分岐しています。
プロジェクトに貢献したい場合は、[貢献ガイド](https://github.com/supabase/auth/blob/master/CONTRIBUTING.md) を参照してください。
## 目次
- [クイックスタート](#quick-start)
- [本番環境での実行](#running-in-production)
- [設定](#configuration)
- [エンドポイント](#endpoints)
## クイックスタート
独自のカスタム環境変数を保存するための `.env` ファイルを作成します。[`example.env`](https://github.com/supabase/auth/blob/master/example.env) を参照してください。
1. Postgresコンテナ内でローカルのPostgresデータベースを起動します: `docker-compose -f docker-compose-dev.yml up postgres`
2. authバイナリをビルドします: `make build` 。次のような出力が表示されるはずです:```bash
go build -ldflags "-X github.com/supabase/auth/cmd.Version=`git rev-parse HEAD`"
GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/supabase/auth/cmd.Version=`git rev-parse HEAD`" -o gotrue-arm64
```
3. authバイナリを実行します: `./auth`
### Dockerをインストールしている場合
独自のカスタム環境変数を保存するための `.env.docker` ファイルを作成します。[`example.docker.env`](https://github.com/supabase/auth/blob/master/example.docker.env) を参照してください。
1. `make build`
2. `make dev`
3. `docker ps` を実行すると、2つのDockerコンテナ(`auth-auth-1` と `auth-postgres-1`)が表示されるはずです
4. これで完了です にアクセスして、authが実行中であることを確認してください。
## 本番環境での実行
認証サーバーを本番環境で実行するのは簡単なことではありません。定期的に
セキュリティアップデートが行われる [Supabase Auth](https://supabase.com/auth) の利用を
お勧めします。
それ以外の場合は、最新バージョンへ速やかに更新する仕組みを必ず
整えてください。これには、このリポジトリ、具体的には
[リリース](https://github.com/supabase/auth/releases) と [セキュリティ
アドバイザリ](https://github.com/supabase/auth/security/advisories) セクションをフォローしてください。
### 後方互換性
Authは [セマンティックバージョニング](https://semver.org) スキームを使用しています。以下に、
後方互換性の保証についてのさらなる明確化を示します。
**Go APIの互換性**
AuthはGoライブラリとして使用することを意図していません。この方法で使用した場合、
どのバージョン番号が変更されても、後方API互換性の保証はありません。
**パッチ**
パッチバージョンの変更は、以下との後方互換性を保証します:
- データベースオブジェクト(テーブル、列、インデックス、関数)
- REST API
- JWT構造
- 設定
保証される例:
- 列の型は変更されません。
- テーブルの主キーは変更されません。
- インデックスは削除されません。
- 一意性制約は削除されません。
- REST APIは削除されません。
- REST APIへのパラメータは以前と同等に動作します(または、バグが
修正されている場合はより良く動作します)。
- 設定は変更されません。
保証されない例:
- テーブルに新しい列が追加される可能性があります。
- テーブルの列が並べ替えられる可能性があります。
- 非一意性制約は削除される可能性があります(データベースレベルのチェック、NULL、デフォルト
値)。
- JWTに新しいプロパティが追加される可能性があります。
**マイナー**
マイナーバージョンの変更は、以下との後方互換性を保証します:
- REST API
- JWT構造
- 設定
これらの保証の例外は、他の方法では対処できない深刻なセキュリティ問題が
見つかった場合にのみ設けられます。
保証される例:
- 既存のAPIは非推奨になることがありますが、次の数回のマイナーバージョンリリースでは
引き続き動作します。
- 設定の変更は非推奨になることがありますが、次の数回のマイナーバージョンリリースでは
引き続き動作します。
- 発行済みのJWTは引き続き受け入れられますが、新しいJWTは異なる構造になる場合があります
(ただし通常は類似しています)。
保証されない例:
- 非推奨通知後のJWTフィールドの削除。
- 非推奨通知後の特定APIの削除。
- 非推奨通知後の外部プロバイダーによるサインインの削除。
- テーブル、インデックス、ビュー、関数に対する削除、切り詰め、大幅なスキーマ変更。
私たちは、実行ログに少なくとも2つのメジャーバージョンリリース、または複数のリリースが
公開される場合は2週間、非推奨通知を提供することを目指しています。通知が有効な間は
互換性が保証されます。
**メジャー**
メジャーバージョンの変更は、以前のバージョンとの後方互換性を一切保証しません。
### 継承された機能
Netlifyコードベースから継承された特定の機能はSupabaseではサポートされておらず、
将来予告なしに削除される可能性があります。以下はそれらの機能の包括的なリストです:
1. `instances` テーブルを介したマルチテナンシー、つまり `GOTRUE_MULTI_INSTANCE_MODE`
設定パラメータ。
2. システムユーザー(ゼロUUIDユーザー)。
3. `is_super_admin` カラムによるスーパー管理者。
4. `GOTRUE_JWT_ADMIN_GROUP_NAME` およびその他の設定フィールドを介したJWT内の
グループ情報。
5. JWT署名。Supabase Authは非対称キー(デフォルトではRS256、
ECC/Ed25519もオプション)をサポートしています。HS256も互換性のために引き続きサポートされていますが、
検証とローテーションを容易にするため、非対称キーへの移行が推奨されます。将来の非推奨はチェンジログで発表されます。詳細は
[JWT署名キー](https://supabase.com/docs/guides/auth/signing-keys) と
[JWTガイド](https://supabase.com/docs/guides/auth/jwts) を参照してください。
これは網羅的なリストではなく、変更される可能性があることに注意してください。
### セルフホスティング時のベストプラクティス
Authとの後方互換性を確保するためにセルフホスティング時に従うべき、いくつかのベストプラクティスを以下に示します:
1. Authによって管理されているスキーマを変更しないでください。マイグレーションはすべて
`migrations` ディレクトリで確認できます。
2. データベースのスキーマやデータ構造に依存しないでください。ユーザー情報を推測するには、常に
Auth APIとJWTを使用してください。
3. 常にAuthをロードバランサー、CDN、
nginx、その他の類似ソフトウェアなどのTLS対応プロキシの背後で実行してください。
## 設定
Authは、`.env` という名前の設定ファイル、
環境変数、またはその両方の組み合わせを使用して設定できます。環境変数には `GOTRUE_` プレフィックスが付き、ファイルで提供された値よりも常に優先されます。
### トップレベル```properties
GOTRUE_SITE_URL=https://example.netlify.com/
```
`SITE_URL` - `string` **必須**
あなたのサイトが置かれているベースURLです。現在は他の設定と組み合わせて、メールで使用されるURLを構築するために使われます。`SITE_URL` とホストを共有する任意のURIは、`redirect_to` パラメータの許可値となります(`/authorize` などを参照)。
`URI_ALLOW_LIST` - `string`
有効な `redirect_to` 宛先として許可されるURIのカンマ区切りリストです(例: `"https://foo.example.com,https://*.foo.example.com,https://bar.example.com"`)。デフォルトは [] です。グロビングによるワイルドカードマッチングをサポートします。例: `https://*.foo.example.com` は `https://a.foo.example.com` と `https://b.foo.example.com` を許可します。グロビングはサブドメインでもサポートされます。例: `https://foo.example.com/*` は `https://foo.example.com/page1` と `https://foo.example.com/page2` を許可します。
より一般的なグロブパターンについては、[次のリンク](https://pkg.go.dev/github.com/gobwas/glob#Compile) を確認してください。
`OPERATOR_TOKEN` - `string` _マルチインスタンスモードのみ_
このマイクロサービスとオペレーター(通常はNetlify)との間で共有されるシークレットです。リクエストがオペレーターを経由してプロキシされ、ペイロード値が信頼できることを検証するために使われます。
`DISABLE_SIGNUP` - `bool`
サインアップが無効の場合、新しいユーザーを作成する唯一の方法は招待です。デフォルトは `false` で、すべてのサインアップが有効です。
`GOTRUE_EXTERNAL_EMAIL_ENABLED` - `bool`
メールサインアップを無効にするにはこれを使用します(ユーザーは引き続き外部OAuthプロバイダーを使用してサインアップ/サインインできます)
`GOTRUE_EXTERNAL_PHONE_ENABLED` - `bool`
電話サインアップを無効にするにはこれを使用します(ユーザーは引き続き外部OAuthプロバイダーを使用してサインアップ/サインインできます)
`GOTRUE_RATE_LIMIT_HEADER` - `string`
`/token` エンドポイントをレート制限するためのヘッダーです。このヘッダーは、信頼できるアップストリームプロキシ(KongやEnvoyなど)によって設定されることが想定されています。`x-forwarded-for` のようなヘッダーは偽装可能であり、クライアントから直接提供された場合、レート制限に使用することはできません。
`GOTRUE_RATE_LIMIT_EMAIL_SENT` - `string`
次のエンドポイントで1時間あたりに送信されるメール数をレート制限します: `/signup`、`/invite`、`/magiclink`、`/recover`、`/otp`、& `/user`。
`GOTRUE_PASSWORD_MIN_LENGTH` - `int`
パスワードの最小長です。デフォルトは6です。
`GOTRUE_PASSWORD_REQUIRED_CHARACTERS` - `:` で区切られた文字セットの文字列です。パスワードは、受け入れられるために各セットの文字を少なくとも1つ含む必要があります。`:` 文字を使用するには、`\` でエスケープします。
`GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED` - `bool`
リフレッシュトークンのローテーションが有効な場合、認証は失効したリフレッシュトークンを再利用しようとする悪意のある試みを自動的に検出します。悪意のある試みが検出されると、GoTrueは問題のトークンから派生したすべてのトークンを直ちに失効させます。
`GOTRUE_SECURITY_REFRESH_TOKEN_REUSE_INTERVAL` - `string`
この設定は、`GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED` が有効な場合にのみ適用されます。リフレッシュトークンの再利用間隔により、その間隔中にリフレッシュトークンを複数回交換して、並行性やオフラインの問題に対応できます。再利用間隔中、認証は失効したトークンの使用を悪意のある試みとは見なさず、単に子リフレッシュトークンを返します。
再利用できるのは、直前に失効したトークンだけです。現在の有効なリフレッシュトークンよりかなり前に発行された古いリフレッシュトークンを使用すると、再利用検出がトリガーされます。
### API```properties
GOTRUE_API_HOST=localhost
PORT=9999
API_EXTERNAL_URL=http://localhost:9999
```
`API_HOST` - `string`
リッスンするホスト名。
`PORT` (プレフィックスなし) / `API_PORT` - `number`
リッスンするポート番号。デフォルトは`8081`。
`API_ENDPOINT` - `string` _マルチインスタンスモードのみ_
NetlifyがこのAPIにアクセスできるエンドポイントを制御します。
`API_EXTERNAL_URL` - `string` **必須**
GoTrueがアクセスされる可能性のあるURL。
`REQUEST_ID_HEADER` - `string`
受信リクエストからリクエストIDを継承したい場合は、この値に名前を指定してください。
### データベース```properties
GOTRUE_DB_DRIVER=postgres
DATABASE_URL=root@localhost/auth
```
`DB_DRIVER` - `string` **必須**
選択するデータベースの方言を指定します。`postgres` である必要があります。
`DATABASE_URL` (プレフィックスなし) / `DB_DATABASE_URL` - `string` **必須**
データベースへの接続文字列です。
`GOTRUE_DB_MAX_POOL_SIZE` - `int`
データベースへの同時接続数の最大値を設定します。デフォルトは0で、これは「無制限」の接続数と同じです。
`DB_NAMESPACE` - `string`
すべてのテーブル名にプレフィックスを追加します。
**マイグレーションに関する注意**
マイグレーションは `./auth` を実行すると自動的に適用されます。ただし、以下の方法でマイグレーションを再実行することもできます。
- ローカルでビルドする場合: `./auth migrate`
- Docker を使用する場合: `docker run --rm auth gotrue migrate`
### ロギング```properties
LOG_LEVEL=debug # available without GOTRUE prefix (exception)
GOTRUE_LOG_FILE=/var/log/go/auth.log
```
`LOG_LEVEL` - `string`
出力するログレベルを制御します。`panic`、`fatal`、`error`、`warn`、`info`、`debug` から選択します。デフォルトは `info` です。
`LOG_FILE` - `string`
ログをファイルに書き出したい場合は、`log_file` に有効なファイルパスを設定します。
### 可観測性
Auth には基本的な可観測性が組み込まれています。[OpenTelemetry](https://opentelemetry.io) のメトリクスとトレースをコレクタにエクスポートできます。
#### トレーシング
トレーシングを有効にするには、以下の変数を設定してください。
`GOTRUE_TRACING_ENABLED` - `bool`
`GOTRUE_TRACING_EXPORTER` - `string` - `opentelemetry` のみサポート
コレクタまたはサービス用に [OpenTelemetry
Exporter](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)
の設定も必ず行ってください。
たとえば、[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
を使用する場合は、以下の標準 OpenTelemetry OTLP 変数を設定してください。```
OTEL_SERVICE_NAME=auth
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443
OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=<API-KEY>,x-honeycomb-dataset=auth"
```
#### メトリクス
メトリクスを有効にするには、以下の変数を設定します。
`GOTRUE_METRICS_ENABLED` - `boolean`
`GOTRUE_METRICS_EXPORTER` - `string` で、`opentelemetry` と `prometheus`
のみサポートされています。
さらに、[OpenTelemetry
エクスポーター](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)
の設定を、コレクターまたはサービスに合わせて行ってください。
`prometheus` エクスポーターを使用する場合、サーバーのホストとポートは
次の標準の OpenTelemetry 変数を使用して設定できます:
`OTEL_EXPORTER_PROMETHEUS_HOST` - IP アドレス、デフォルトは `0.0.0.0`
`OTEL_EXPORTER_PROMETHEUS_PORT` - ポート番号、デフォルトは `9100`
メトリクスはサーバーの `/` パスで公開されます。
`opentelemetry` エクスポーターを使用する場合、メトリクスはコレクターに
プッシュされます。
たとえば、
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
を使用する場合は、次の標準の OpenTelemetry OTLP 変数を設定する必要があります:```
OTEL_SERVICE_NAME=auth
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443
OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=<API-KEY>,x-honeycomb-dataset=auth"
```
Honeycomb.io ではメトリクスを取り込むために有料プランが必要です。
トレースまたはメトリクスがプッシュされない問題をデバッグする必要がある場合は、`DEBUG=true` を設定すると、OpenTelemetry SDK からより多くの洞察を得ることができます。
#### カスタムリソース属性
OpenTelemetry のトレーシングまたはメトリクスエクスポーターを使用する場合、[標準の `OTEL_RESOURCE_ATTRIBUTES` 環境変数](https://opentelemetry.io/docs/reference/specification/resource/sdk/#specifying-resource-information-via-an-environment-variable) を使用してカスタムリソース属性を定義できます。
ビルドバージョンを含むデフォルト属性 `auth.version` が提供されます。
#### HTTPルートのトレーシング
Auth API へのすべての HTTP 呼び出しがトレースされます。ルートはパラメータ化されたバージョンのルートを使用し、ルートパラメータの値は `http.route.params.<route-key>` スパン属性として確認できます。
たとえば、次のリクエストの場合:```
GET /admin/users/4acde936-82dc-4552-b851-831fb8ce0927/
```
次のようにトレースされます:```
http.method = GET
http.route = /admin/users/{user_id}
http.route.params.user_id = 4acde936-82dc-4552-b851-831fb8ce0927
```
#### GoランタイムとHTTPメトリクス
Goランタイムのすべてのメトリクスが公開されています。一部のHTTPメトリクスもデフォルトで
収集されます。
### JSONウェブトークン (JWT)```properties
GOTRUE_JWT_SECRET=supersecretvalue
GOTRUE_JWT_EXP=3600
GOTRUE_JWT_AUD=netlify
```
`JWT_SECRET` - `string` **必須**
JWT トークンの署名に使用するシークレット。
`JWT_EXP` - `number`
トークンの有効期間(秒)。デフォルトは 3600(1時間)。
`JWT_AUD` - `string`
デフォルトの JWT オーディエンス。オーディエンスを使用してユーザーをグループ化します。
`JWT_ADMIN_GROUP_NAME` - `string`
管理者グループの名前(有効な場合)。デフォルトは `admin`。
`JWT_DEFAULT_GROUP_NAME` - `string`
すべての新規ユーザーに割り当てるデフォルトのグループ。
### 外部認証プロバイダー
外部認証では、`apple`、`azure`、`bitbucket`、`discord`、`facebook`、`figma`、`github`、`gitlab`、`google`、`keycloak`、`linkedin`、`notion`、`snapchat`、`spotify`、`slack`、`twitch`、`twitter`、`workos` をサポートしています。
各プロバイダーを個別に設定するには、`external` の下のキーとしてこれらの名前を使用します。```properties
GOTRUE_EXTERNAL_GITHUB_ENABLED=true
GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=myappclientid
GOTRUE_EXTERNAL_GITHUB_SECRET=clientsecretvaluessssh
GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=http://localhost:3000/callback
```
外部プロバイダーは必須ではありませんが、いずれかを有効にする場合は、必要な値を指定する必要があります。
`EXTERNAL_X_ENABLED` - `bool`
この外部プロバイダーが有効かどうか
`EXTERNAL_X_CLIENT_ID` - `string` **必須**
外部プロバイダーに登録されたOAuth2クライアントID。
`EXTERNAL_X_SECRET` - `string` **必須**
登録時に外部プロバイダーから提供されるOAuth2クライアントシークレット。
`EXTERNAL_X_REDIRECT_URI` - `string` **必須**
OAuth2プロバイダーが `code` と `state` の値を付けてリダイレクトするURI。
`EXTERNAL_X_URL` - `string`
認可リクエストとアクセストークンリクエストのURLを構築するために使用されるベースURL。`gitlab` と `keycloak` によって使用されます。`gitlab` の場合、デフォルトは `https://gitlab.com` です。`keycloak` の場合、これを自分のインスタンスに設定する必要があります。例: `https://keycloak.example.com/realms/myrealm`
#### ネットワークの堅牢化
外部認証プロバイダーを設定すると、Auth はそのプロバイダーの認可、トークン、および userinfo エンドポイントに対して送信 HTTP リクエストを行うようになります。プロバイダーを `GOTRUE_EXTERNAL_*` 設定または管理 API のいずれかで設定することは管理アクションであり、それを行うことは、接続先となるホストとURLを信頼することを意味します。
Auth が実行されるネットワークは、`localhost`/ループバックアドレスやクラウドメタデータエンドポイント(例: `169.254.169.254`)など、公開したくない内部専用リソースにこれらの送信接続が到達できないように強化する必要があります。これは、管理側で設定可能または検出可能なエンドポイントを持つプロバイダー(例: カスタム OAuth/OIDC プロバイダー)に最も重要です。誤設定された URL や悪意のある URL が内部インフラストラクチャへの到達に悪用される可能性があるためです。
#### Apple OAuth
Apple を使用した外部認証をローカルで試すには、次の手順を実行する必要があります:
1. `/etc/hosts` 設定で localhost を \<my_custom_dns \> にリマップします。
2. auth が localhost 上で HTTPS トラフィックを提供するように設定するには、[api.go](https://github.com/supabase/auth/blob/master/internal/api/api.go) 内の `ListenAndServe` を以下に置き換えます: ```
func (a *API) ListenAndServe(hostAndPort string) {
log := logrus.WithField("component", "api")
path, err := os.Getwd()
if err != nil {
log.Println(err)
}
server := &http.Server{
Addr: hostAndPort,
Handler: a.handler,
}
done := make(chan struct{})
defer close(done)
go func() {
waitForTermination(log, done)
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
defer cancel()
server.Shutdown(ctx)
}()
if err := server.ListenAndServeTLS("PATH_TO_CRT_FILE", "PATH_TO_KEY_FILE"); err != http.ErrServerClosed {
log.WithError(err).Fatal("http server listen failed")
}
}
```
3. crt ファイルとキーファイルを生成します。詳細は [こちら](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/) を参照してください。
4. この [記事](https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003) に従って `GOTRUE_EXTERNAL_APPLE_SECRET` を生成してください!
### メール
メールの送信は必須ではありませんが、パスワード回復のために強く推奨されます。
有効にする場合は、以下の必須値を指定する必要があります。```properties
GOTRUE_SMTP_HOST=smtp.mandrillapp.com
GOTRUE_SMTP_PORT=587
[email protected]
GOTRUE_SMTP_PASS=correcthorsebatterystaple
[email protected]
GOTRUE_MAILER_SUBJECTS_CONFIRMATION="Please confirm"
```
`SMTP_ADMIN_EMAIL` - `string` **必須**
送信されるすべてのメールの `From` メールアドレス。
`SMTP_HOST` - `string` **必須**
メールの送信に使用するメールサーバーのホスト名。
`SMTP_PORT` - `number` **必須**
メールサーバーへの接続に使用するポート番号。
`SMTP_USER` - `string`
メールサーバーが認証を要求する場合に使用するユーザー名。
`SMTP_PASS` - `string`
メールサーバーが認証を要求する場合に使用するパスワード。
`SMTP_MAX_FREQUENCY` - `number`
次のサインアップ確認メールまたはパスワードリセットメールを送信するまでに経過しなければならない最小時間を制御します。値は秒数です。デフォルトは900(15分)です。
`SMTP_SENDER_NAME` - `string`
送信者の名前を設定します。使用されない場合、`SMTP_ADMIN_EMAIL` がデフォルトになります。
`MAILER_AUTOCONFIRM` - `bool`
メール確認を必要としない場合は、これを `true` に設定できます。デフォルトは `false` です。
`MAILER_OTP_EXP` - `number`
メールリンクまたはOTPが有効な期間を制御します。
`MAILER_URLPATHS_INVITE` - `string`
ユーザー招待メールで使用するURLパス。デフォルトは `/verify` です。
`MAILER_URLPATHS_CONFIRMATION` - `string`
サインアップ確認メールで使用するURLパス。デフォルトは `/verify` です。
`MAILER_URLPATHS_RECOVERY` - `string`
パスワードリセットメールで使用するURLパス。デフォルトは `/verify` です。
`MAILER_URLPATHS_EMAIL_CHANGE` - `string`
メールアドレス変更確認メールで使用するURLパス。デフォルトは `/verify` です。
`MAILER_SUBJECTS_INVITE` - `string`
ユーザー招待に使用するメール件名。デフォルトは `You've been invited` です。
`MAILER_SUBJECTS_CONFIRMATION` - `string`
サインアップ確認に使用するメール件名。デフォルトは `Confirm your email address` です。
`MAILER_SUBJECTS_RECOVERY` - `string`
パスワードリセットに使用するメール件名。デフォルトは `Reset your password` です。
`MAILER_SUBJECTS_MAGIC_LINK` - `string`
マジックリンクメールに使用するメール件名。デフォルトは `Your sign-in link` です。
`MAILER_SUBJECTS_EMAIL_CHANGE` - `string`
メールアドレス変更確認に使用するメール件名。デフォルトは `Confirm your new email address` です。
`MAILER_SUBJECTS_REAUTHENTICATION` - `string`
再認証に使用するメール件名。デフォルトは `{{ .Token }} is your verification code` です。
`MAILER_SUBJECTS_PASSWORD_CHANGED_NOTIFICATION` - `string`
パスワード変更通知に使用するメール件名。デフォルトは `Your password was changed` です。
`MAILER_SUBJECTS_EMAIL_CHANGED_NOTIFICATION` - `string`
メールアドレス変更通知に使用するメール件名。デフォルトは `Your email address was changed` です。
`GOTRUE_MAILER_SUBJECTS_PHONE_CHANGED_NOTIFICATION` - `string`
電話番号変更通知に使用するメール件名。デフォルトは `Your phone number was changed` です。
`GOTRUE_MAILER_SUBJECTS_IDENTITY_LINKED_NOTIFICATION` - `string`
アイデンティティ連携通知に使用するメール件名。デフォルトは `A new sign-in method was linked to your account` です。
`GOTRUE_MAILER_SUBJECTS_IDENTITY_UNLINKED_NOTIFICATION` - `string`
アイデンティティ連携解除通知に使用するメール件名。デフォルトは `A sign-in method was removed from your account` です。
`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_ENROLLED_NOTIFICATION` - `string`
検証方法追加通知に使用するメール件名。デフォルトは `A new verification method was added to your account` です。
`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_UNENROLLED_NOTIFICATION` - `string`
検証方法削除通知に使用するメール件名。デフォルトは `A verification method was removed from your account` です。
`MAILER_TEMPLATES_INVITE` - `string`
ユーザーを招待するときに使用するメールテンプレートへのURLパス。(例:`https://www.example.com/path-to-email-template.html`)
`SiteURL`、`Email`、`ConfirmationURL` 変数が利用可能です。
デフォルトコンテンツ(テンプレートが利用できない場合):```html
<h2>You've been invited</h2>
<p>You've been invited to create an account. Follow the link below to accept.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Accept invitation</a></p>
```
`MAILER_TEMPLATES_CONFIRMATION` - `string`
サインアップを確認する際に使用するメールテンプレートへのURLパス。(例:`https://www.example.com/path-to-email-template.html`)
`SiteURL`、`Email`、`ConfirmationURL` 変数が利用可能です。
デフォルトの内容(テンプレートが利用できない場合):```html
<h2>Confirm your email address</h2>
<p>Follow the link below to confirm this email address and finish signing up.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Confirm email address</a></p>
```
`MAILER_TEMPLATES_RECOVERY` - `string`
パスワードリセット時に使用するメールテンプレートへのURLパス。(例: `https://www.example.com/path-to-email-template.html`)
`SiteURL`、`Email`、`ConfirmationURL` 変数が利用可能です。
デフォルトコンテンツ(テンプレートが利用できない場合):```html
<h2>Reset your password</h2>
<p>We received a request to reset your password. Follow the link below to choose a new one.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Reset password</a></p>
<p>If you didn't request this, you can safely ignore this email.</p>
```
`MAILER_TEMPLATES_MAGIC_LINK` - `string`
マジックリンク送信時に使用するメールテンプレートへのURLパス。(例: `https://www.example.com/path-to-email-template.html`)
`SiteURL`、`Email`、`ConfirmationURL` 変数が利用可能です。
デフォルトコンテンツ (テンプレートが利用できない場合):```html
<h2>Your sign-in link</h2>
<p>Follow the link below to sign in. This link expires shortly and can only be used once.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Sign in</a></p>
```
`MAILER_TEMPLATES_EMAIL_CHANGE` - `string`
メールアドレスの変更を確認する際に使用するメールテンプレートへのURLパス。(例: `https://www.example.com/path-to-email-template.html`)
`SiteURL`、`Email`、`NewEmail`、`ConfirmationURL` の各変数が利用可能です。
デフォルトコンテンツ (テンプレートが利用できない場合):```html
<h2>Confirm your new email address</h2>
<p>Follow the link below to confirm {{ .NewEmail }} as your new email address.</p>
<p><a href="https://github.com/supabase/auth/blob/master/%7B%7B%20.ConfirmationURL%20%7D%7D">Confirm new email address</a></p>
```
---
[Read more](https://github.com/supabase/auth)