メインコンテンツまでスキップ

アカウント設定(Account API 経由)

Logto Account API とは

Logto Account API は、エンドユーザーが Management API を経由せずに直接 API アクセスできる包括的な API セットです。主な特徴は以下の通りです:

  • 直接アクセス:Account API により、エンドユーザーは自分のアカウントプロファイルへ直接アクセスし管理できます。Management API の中継は不要です。
  • ユーザープロファイルとアイデンティティ管理:ユーザーは自分のプロファイルやセキュリティ設定を完全に管理できます。メール、電話、パスワードなどのアイデンティティ情報の更新や、ソーシャル連携の管理が可能です。多要素認証 (MFA) やシングルサインオン (SSO) のサポートも近日追加予定です。
  • グローバルアクセス制御:管理者はアクセス設定をグローバルに完全管理でき、各フィールドごとにカスタマイズ可能です。
  • シームレスな認可 (Authorization):認可 (Authorization) がこれまで以上に簡単に!client.getAccessToken() を使って OP (Logto) 用の不透明トークン (Opaque token) を取得し、Authorization ヘッダーに Bearer <access_token> として付与するだけです。

Logto Account API を使えば、Logto と完全連携したプロフィールページのようなカスタムアカウント管理システムを構築できます。

よくあるユースケース例:

  • ユーザープロファイルの取得
  • ユーザープロファイルの更新
  • ユーザーパスワードの更新
  • メール・電話・ソーシャル連携などのユーザーアイデンティティの更新
  • MFA 要素(認証要素)の管理
  • ユーザーセッションの管理

利用可能な API について詳しくは Logto Account API Reference および Logto Verification API Reference をご覧ください。

注記:

SSO アカウントの閲覧やアカウント削除機能は現在 Logto Management API 経由で提供されています。実装詳細は Management API によるアカウント設定 をご参照ください。

Account API の有効化方法

コンソール > サインイン & アカウント > アカウントセンター

に移動します。

Account API はデフォルトで無効化されており、アクセス制御もロックされています。Account API を有効化 を切り替えてオンにしてください。

有効化後は、識別子・プロファイルデータ・サードパーティトークンアクセスごとにフィールド単位で権限を設定できます。各フィールドは OffReadOnlyEdit のいずれかをサポートし、デフォルトは Off です。

  1. セキュリティフィールド:
    • 対象フィールド:プライマリメール、プライマリ電話、ソーシャルアイデンティティ、パスワード、MFA。
    • エンドユーザーがこれらのフィールドを編集する前に、パスワード・メール・SMS いずれかで本人確認を行い、10 分間有効な認証記録 ID を取得する必要があります。詳細は 認証記録 ID の取得 を参照してください。
    • MFA 用 WebAuthn パスキーを利用する場合は、WebAuthn 関連オリジン にフロントエンドアプリのドメインを追加し、アカウントセンターとサインイン体験でパスキーを共有できるようにします。詳細は 新しい WebAuthn パスキーの連携 を参照してください。
  2. プロファイルフィールド:
    • 対象フィールド:ユーザー名、氏名、アバター、プロファイル(その他標準プロファイル属性)、カスタムデータ
    • これらは追加の認証なしでエンドユーザーが編集可能です。
  3. シークレットボールト:
    • OIDC / OAuth ソーシャル・エンタープライズコネクター用に、Logto の シークレットボールト が認証後のサードパーティアクセストークン・リフレッシュトークンを安全に保存します。アプリは、たとえば Google カレンダーイベントの同期など、再度サインインを求めることなく外部 API を呼び出せます。Account API 有効化後、自動的にトークン取得が可能になります。
  4. セッション管理:
    • 有効化すると、ユーザーは自身のアクティブセッション(デバイス情報や最終サインイン時刻を含む)を閲覧・管理できます。特定デバイスからのログアウト(セッションの取り消し)も可能です。
    • セッション管理にアクセスする前に、パスワード・メール・SMS いずれかで本人確認を行い、10 分間有効な認証記録 ID を取得する必要があります。詳細は 認証記録 ID の取得 を参照してください。

Account API へのアクセス方法

注記:

アクセストークンに適切な権限が付与されていることを確認するため、Logto 設定で対応するスコープを正しく設定してください。

たとえば、POST /api/my-account/primary-email API には email スコープ、POST /api/my-account/primary-phone API には phone スコープが必要です。

import { type LogtoConfig, UserScope } from '@logto/js';

const config: LogtoConfig = {
// ...その他のオプション
// ユースケースに合った適切なスコープを追加
scopes: [
UserScope.Email, // `{POST,DELETE} /api/my-account/primary-email` 用
UserScope.Phone, // `{POST,DELETE} /api/my-account/primary-phone` 用
UserScope.CustomData, // カスタムデータ管理用
UserScope.Address, // 住所管理用
UserScope.Identities, // アイデンティティ・MFA 関連 API 用
UserScope.Profile, // ユーザープロファイル管理用
UserScope.Sessions, // ユーザーセッション管理用
],
};

アクセストークンの取得

SDK をアプリケーションにセットアップした後、client.getAccessToken() メソッドでアクセストークンを取得できます。このトークンは Account API へのアクセスに使用できる不透明トークン (Opaque token) です。

公式 SDK を使用しない場合は、アクセストークングラントリクエスト /oidc/tokenresource を空に設定してください。

アクセストークンを使った Account API へのアクセス

Account API へリクエストする際は、HTTP ヘッダーの Authorization フィールドに Bearer 形式(Bearer YOUR_TOKEN)でアクセストークンを含めてください。

ユーザーアカウント情報を取得する例:

curl https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>'

基本的なアカウント情報の管理

ユーザーアカウント情報の取得

ユーザーデータを取得するには、GET /api/my-account エンドポイントを利用します。

curl https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>'

レスポンス例:

{
"id": "...",
"username": "...",
"name": "...",
"avatar": "..."
}

レスポンスフィールドはアカウントセンターの設定によって異なる場合があります。

基本的なアカウント情報の更新

基本的なアカウント情報には、ユーザー名・氏名・アバター・カスタムデータ・その他プロファイル情報が含まれます。

ユーザー名・氏名・アバター・カスタムデータ の更新には、PATCH /api/my-account エンドポイントを利用します。

curl -X PATCH https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"username":"...","name":"...","avatar":"..."}'

familyName, givenName, middleName, nickname, profile(プロフィールページ URL), website, gender, birthdate, zoneinfo, locale, address などの他のプロファイル情報を更新するには、PATCH /api/my-account/profile エンドポイントを利用します。

curl -X PATCH https://[tenant-id].logto.app/api/my-account/profile \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"familyName":"...","givenName":"..."}'

識別子やその他の機微情報の管理

セキュリティ上の理由から、Account API で識別子や機微情報を扱う操作には追加の認可 (Authorization) 層が必要です。

認証記録 ID の取得

まず、10 分間有効な 認証記録 ID を取得する必要があります。これは機微情報の更新前にユーザーの本人確認を行うために使用します。つまり、ユーザーがパスワード・メール認証コード・SMS 認証コードで本人確認に成功すると、10 分間は識別子・認証情報・ソーシャル連携・MFA などの認証関連データを更新できます。

認証記録 ID を取得するには、ユーザーパスワードで認証 または メールや電話に認証コードを送信して認証 を行います。

ユーザーパスワードで認証

curl -X POST https://[tenant-id].logto.app/api/verifications/password \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"password":"..."}'

レスポンス例:

{
"verificationRecordId": "...",
"expiresAt": "..."
}

メールや電話に認証コードを送信して認証

注記:

この方法を利用するには、メールコネクターの設定 または SMS コネクターの設定 を行い、UserPermissionValidation テンプレートが設定されていることを確認してください。

メールを例に、新しい認証コードをリクエストし認証記録 ID を取得します:

curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."}}'

レスポンス例:

{
"verificationRecordId": "...",
"expiresAt": "..."
}

認証コードを受け取ったら、それを使って認証記録の検証ステータスを更新できます。

curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."},"verificationId":"...","code":"123456"}'

コードの検証後、認証記録 ID を使ってユーザーの識別子を更新できます。

認証について詳しくは Account API によるセキュリティ認証 をご参照ください。

認証記録 ID を使ったリクエスト送信

ユーザーの識別子を更新するリクエストを送信する際は、リクエストヘッダーの logto-verification-id フィールドに認証記録 ID を含めてください。

ユーザーパスワードの更新

ユーザーパスワードの更新には、POST /api/my-account/password エンドポイントを利用します。

curl -X POST https://[tenant-id].logto.app/api/my-account/password \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"password":"..."}'
ヒント:

サインアップ時と同様、Account API で設定するパスワードも コンソール > セキュリティ > パスワードポリシー で設定した パスワードポリシー に準拠する必要があります。ポリシー違反時は詳細なバリデーション結果とエラーメッセージが返されます。

注記:

この方法を利用するには、メールコネクターの設定 を行い、BindNewIdentifier テンプレートが設定されていることを確認してください。

新しいメールを更新・連携するには、まずそのメールの所有権を証明する必要があります。

POST /api/verifications/verification-code エンドポイントで認証コードをリクエストします。

curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."}}'

レスポンスで verificationId が返され、メールで認証コードが届きます。それを使ってメールを検証します。

curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."},"verificationId":"...","code":"..."}'

コードの検証後、PATCH /api/my-account/primary-email を呼び出してユーザーのメールを更新します。リクエストボディの newIdentifierVerificationRecordIdverificationId を指定します。

2 種類の認証記録 ID:

このリクエストには 2 つの異なる認証記録 ID が必要です:

curl -X POST https://[tenant-id].logto.app/api/my-account/primary-email \
-H 'authorization: Bearer <access_token>' \
# 本人確認(パスワードまたは既存メール/電話認証による)
-H 'logto-verification-id: <verification_record_id_from_existing_identifier>' \
-H 'content-type: application/json' \
# "newIdentifierVerificationRecordId" は新しいメール所有権証明(上記認証コードフローより)
--data-raw '{"email":"...","newIdentifierVerificationRecordId":"<verification_record_id_from_new_email>"}'
ヒント:

サインアップ時と同様、Account API で連携するメールも コンソール > セキュリティ > ブロックリスト で設定した ブロックリスト 検証に合格する必要があります。違反時はリクエストが拒否され、詳細なエラーが返されます。

ユーザーのメール削除

ユーザーのメール削除には、DELETE /api/my-account/primary-email エンドポイントを利用します。

curl -X DELETE https://[tenant-id].logto.app/api/my-account/primary-email \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>'

電話番号の管理

注記:

この方法を利用するには、SMS コネクターの設定 を行い、BindNewIdentifier テンプレートが設定されていることを確認してください。

メール更新と同様に、PATCH /api/my-account/primary-phone エンドポイントで新しい電話番号の更新・連携、DELETE /api/my-account/primary-phone エンドポイントで電話番号の削除が可能です。

新しいソーシャル連携を追加するには、まず POST /api/verifications/social で認可 URL をリクエストします。

curl -X POST https://[tenant-id].logto.app/api/verifications/social \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"connectorId":"...","redirectUri":"...","state":"..."}'
  • connectorIdソーシャルコネクター の ID
  • redirectUri:ユーザーがアプリを認可した後のリダイレクト先。ここでコールバックを受け取るページをホストしてください。
  • state:認可後に返されるランダムな文字列。CSRF 攻撃防止用。

レスポンスで verificationRecordId が返されるので、後で使用するために保持します。

ユーザーがアプリを認可すると、redirectUristate パラメータ付きのコールバックを受け取ります。その後、POST /api/verifications/social/verify でソーシャル連携を検証します。

curl -X POST https://[tenant-id].logto.app/api/verifications/social/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"connectorData":"...","verificationRecordId":"..."}'

connectorData は、ユーザーがアプリを認可した後にソーシャルコネクターから返されるデータです。コールバックページで redirectUri のクエリパラメータをパースし、JSON 形式で connectorData フィールドに渡してください。

最後に、POST /api/my-account/identities エンドポイントでソーシャル連携を追加します。

2 種類の認証記録 ID:

このリクエストには 2 つの異なる認証記録 ID が必要です:

curl -X POST https://[tenant-id].logto.app/api/my-account/identities \
-H 'authorization: Bearer <access_token>' \
# 本人確認(パスワードまたは既存メール/電話認証による)
-H 'logto-verification-id: <verification_record_id_from_existing_identifier>' \
-H 'content-type: application/json' \
# "newIdentifierVerificationRecordId" は連携するソーシャル連携の識別(上記ソーシャル認証フローより)
--data-raw '{"newIdentifierVerificationRecordId":"<verification_record_id_from_social>"}'

ソーシャル連携の削除

ソーシャル連携の削除には、DELETE /api/my-account/identities エンドポイントを利用します。

curl -X DELETE https://[tenant-id].logto.app/api/my-account/identities/[connector_target_id] \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>'
注記:

まず MFA および WebAuthn の有効化 を行ってください。

注記:

この方法を利用するには、アカウントセンター設定mfa フィールドを有効化する必要があります。

ステップ 1:フロントエンドアプリのオリジンを関連オリジンに追加

WebAuthn パスキーは Relying Party ID (RP ID) と呼ばれる特定のホスト名に紐づきます。RP ID のオリジンでホストされているアプリケーションのみが、そのパスキーで登録・認証できます。

フロントエンドアプリが Logto の認証ページとは異なるドメインから Account API を呼び出す場合、関連オリジン を設定してクロスオリジンのパスキー操作を許可する必要があります。

Logto が RP ID を決定する方法:

  • デフォルト設定:Logto のデフォルトドメイン https://[tenant-id].logto.app の場合、RP ID は [tenant-id].logto.app
  • カスタムドメインカスタムドメインhttps://auth.example.com などで設定した場合、RP ID は auth.example.com

関連オリジンの設定方法:

PATCH /api/account-center エンドポイントでフロントエンドアプリのオリジンを追加します。たとえばアカウントセンターが https://account.example.com で動作している場合:

curl -X PATCH https://[tenant-id].logto.app/api/account-center \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"webauthnRelatedOrigins":["https://account.example.com"]}'
注記:

WebAuthn では関連オリジンとして最大 5 つのユニークな eTLD+1 ラベルがサポートされます。eTLD+1(有効なトップレベルドメイン+1 ラベル)は登録可能なドメイン部分です。例:

  • https://example.comhttps://app.example.comhttps://auth.example.com1 ラベル(example.com
  • https://shopping.comhttps://shopping.co.ukhttps://shopping.co.jp1 ラベル(shopping
  • https://example.comhttps://another.com2 ラベル

5 ドメインを超える関連オリジンが必要な場合は、Related Origin Requests ドキュメントを参照してください。

ステップ 2:新規登録オプションのリクエスト

POST /api/verifications/web-authn/registration エンドポイントで新しいパスキー登録をリクエストします。Logto では 1 アカウントにつき複数のパスキー登録が可能です。

curl -X POST https://[tenant-id].logto.app/api/verifications/web-authn/registration \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

レスポンス例:

{
"registrationOptions": "...",
"verificationRecordId": "...",
"expiresAt": "..."
}

ステップ 3:ローカルブラウザでパスキーを登録

@simplewebauthn/browser を例に、startRegistration 関数でローカルブラウザにパスキーを登録します。

import { startRegistration } from '@simplewebauthn/browser';

// ...
const response = await startRegistration({
optionsJSON: registrationOptions, // ステップ 1 でサーバーから返されたデータ
});
// 後で使用するために response を保存

ステップ 4:パスキー登録の検証

POST /api/verifications/web-authn/registration/verify エンドポイントでパスキー登録を検証します。

このステップでは、認証器が生成した暗号署名を検証し、パスキーが正当に作成され転送中に改ざんされていないことを確認します。

curl -X POST https://[tenant-id].logto.app/api/verifications/web-authn/registration/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"payload":"...","verificationRecordId":"..."}'
  • payload:ステップ 2 のローカルブラウザからのレスポンス
  • verificationRecordId:ステップ 1 でサーバーから返された認証記録 ID

ステップ 5:パスキーの連携

最後に、POST /api/my-account/mfa-verifications エンドポイントでパスキーをユーザーアカウントに連携します。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"type":"WebAuthn","newIdentifierVerificationRecordId":"..."}'
  • verification_record_id:既存要素の認証で付与された有効な認証記録 ID。詳細は 認証記録 ID の取得 を参照。
  • type:MFA 要素のタイプ。現在は WebAuthn のみサポート。
  • newIdentifierVerificationRecordId:ステップ 1 でサーバーから返された認証記録 ID。

既存 WebAuthn パスキーの管理

既存の WebAuthn パスキー管理には、GET /api/my-account/mfa-verifications エンドポイントで現在のパスキーや他の MFA 要素を取得できます。

curl https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>'

レスポンス例:

[
{
"id": "...",
"type": "WebAuthn",
"name": "...",
"agent": "...",
"createdAt": "...",
"updatedAt": "..."
}
]
  • id:認証要素の ID
  • type:認証要素のタイプ。WebAuthn パスキーの場合は WebAuthn
  • name:パスキー名(任意)
  • agent:パスキーのユーザーエージェント

パスキー名の更新は PATCH /api/my-account/mfa-verifications/{verificationId}/name エンドポイントで行います:

curl -X PATCH https://[tenant-id].logto.app/api/my-account/mfa-verifications/{verificationId}/name \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"name":"..."}'

パスキーの削除は DELETE /api/my-account/mfa-verifications/{verificationId} エンドポイントで行います:

curl -X DELETE https://[tenant-id].logto.app/api/my-account/mfa-verifications/{verificationId} \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>'
注記:

まず MFA および TOTP の有効化 を行ってください。

注記:

この方法を利用するには、アカウントセンター設定mfa フィールドを有効化する必要があります。

ステップ 1:TOTP シークレットの生成

POST /api/my-account/mfa-verifications/totp-secret/generate エンドポイントで TOTP シークレットを生成します。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications/totp-secret/generate \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

レスポンス例:

{
"secret": "..."
}

ステップ 2:TOTP シークレットをユーザーに表示

シークレットを使って QR コードを生成するか、直接ユーザーに表示します。ユーザーはこれを Google Authenticator、Microsoft Authenticator、Authy などの認証アプリに追加します。

QR コードの URI 形式:

otpauth://totp/[Issuer]:[Account]?secret=[Secret]&issuer=[Issuer]

例:

otpauth://totp/YourApp:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=YourApp

ステップ 3:TOTP 要素のバインド

ユーザーが認証アプリにシークレットを追加したら、それを検証してアカウントにバインドします。POST /api/my-account/mfa-verifications エンドポイントを利用します。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"type":"Totp","secret":"..."}'
  • verification_record_id:既存要素の認証で付与された有効な認証記録 ID。詳細は 認証記録 ID の取得 を参照。
  • typeTotp を指定
  • secret:ステップ 1 で生成した TOTP シークレット
注記:

ユーザーは TOTP 要素を 1 つしか持てません。既に TOTP 要素がある場合、追加しようとすると 422 エラーになります。

バックアップコードの管理

注記:

まず MFA およびバックアップコードの有効化 を行ってください。

注記:

この方法を利用するには、アカウントセンター設定mfa フィールドを有効化する必要があります。

ステップ 1:新しいバックアップコードの生成

POST /api/my-account/mfa-verifications/backup-codes/generate エンドポイントで新しい 10 個のバックアップコードを生成します。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications/backup-codes/generate \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

レスポンス例:

{
"codes": ["...", "...", "..."]
}

ステップ 2:バックアップコードをユーザーに表示

バックアップコードをユーザーアカウントにバインドする前に、必ずユーザーに表示し、以下を案内してください:

  • すぐにダウンロードまたは書き留めること
  • 安全な場所に保管すること
  • 各コードは 1 回しか使えないこと
  • これらのコードは主要な MFA 手段を失った場合の最後の手段であること

コピーしやすい形式で表示し、ダウンロード(テキストファイルや PDF など)も提供するとよいでしょう。

ステップ 3:バックアップコードをユーザーアカウントにバインド

POST /api/my-account/mfa-verifications エンドポイントでバックアップコードをバインドします。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json' \
--data-raw '{"type":"BackupCode","codes":["...","...","..."]}'
  • verification_record_id:既存要素の認証で付与された有効な認証記録 ID。詳細は 認証記録 ID の取得 を参照。
  • typeBackupCode を指定
  • codes:前ステップで生成したバックアップコード配列
注記:
  • ユーザーは 1 セットのバックアップコードしか持てません。すべて使い切った場合は新たに生成・バインドが必要です。
  • バックアップコードのみを MFA 要素とすることはできません。必ず他の MFA 要素(WebAuthn や TOTP など)が有効である必要があります。
  • 各バックアップコードは 1 回しか使えません。

既存バックアップコードの閲覧

既存のバックアップコードと使用状況は、GET /api/my-account/mfa-verifications/backup-codes エンドポイントで確認できます:

curl https://[tenant-id].logto.app/api/my-account/mfa-verifications/backup-codes \
-H 'authorization: Bearer <access_token>'

レスポンス例:

{
"codes": [
{
"code": "...",
"usedAt": null
},
{
"code": "...",
"usedAt": "2024-01-15T10:30:00.000Z"
}
]
}
  • code:バックアップコード
  • usedAt:使用時刻。未使用の場合は null

ユーザーセッションの管理

アクティブセッションの一覧取得

ユーザーのアクティブセッション一覧は、GET /api/my-account/sessions エンドポイントで取得できます。

注記:
  • このエンドポイントには UserScope.Sessions スコープが必要です。
  • アカウントセンター設定の Sessions フィールドが ReadOnly または Edit である必要があります。
curl https://[tenant-id].logto.app/api/my-account/sessions \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json'

セッション ID 指定でのセッション取り消し

特定のセッションを取り消すには、DELETE /api/my-account/sessions/{sessionId} エンドポイントを利用します。

注記:
  • このエンドポイントには UserScope.Sessions スコープが必要です。
  • アカウントセンター設定の Sessions フィールドが Edit である必要があります。
curl -X DELETE https://[tenant-id].logto.app/api/my-account/sessions/{sessionId} \
-H 'authorization: Bearer <access_token>' \
-H 'logto-verification-id: <verification_record_id>' \
-H 'content-type: application/json'

オプションのクエリパラメータ:

  • revokeGrantsTarget:セッションとともに取り消すグラントの対象を指定可能。値の例:
    • all:セッションに関連付けられたすべてのグラントを取り消し
    • firstParty:ファーストパーティアプリのグラントのみ取り消し(多くのケースで推奨。自社アプリのアクセスのみ取り消し、サードパーティアプリのグラントは維持し、より良いユーザー体験を提供)
    • 未指定:デフォルト動作は offline_access スコープを持たないグラントを取り消し(通常はリフレッシュトークン以外のグラントを取り消し)