Go でユーザートークンを検証する
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services(AGS)を使用したカスタムサービスを作成する際、アクションを実行する前にユーザートークンを検証する必要がある場合があります。これは、AccelByte Extend SDK のトークン検証機能を使用して実現できます。
AccelByte Extend SDK には、リモートとローカルの 2 つのトークン検証方法があります。リモートトークン検証では、トークン検証がリクエストされるたびに AGS エンドポイントが呼び出されます。一方、ローカルトークン検証では、トークンは JWKS に対して検証され、失効リストは AccelByte Extend SDK によってローカルにキャッシュされます。これら 2 つの方法の違いは、ローカルトークン検証がリモートトークン検証よりも高速である可能性があることです。ただし、ローカルにキャッシュされた失効リストが更新されるまで、誤った結果が得られる可能性があります。デフォルトでは、リモートトークン検証が使用されます。
AccelByte Extend SDK は複数のプログラミング言語で利用できます。このガイドでは、Go Modular Extend SDK とリモートトークン検証を使用してユーザートークンを検証する方法を説明します。
目標
このガイドでは、以下の方法を説明します。
- validator パッケージのインポート
- Go Modular Extend SDK を使用したユーザートークンの検証
前提条件
このガイドのタスクを実行するには、以下が必要です。
- Go 1.18 以降がインストールされていること
- AGS デモ環境へのアクセス権を取得していること:
AB_BASE_URL環境変数にはhttps://prod.gamingservices.accelbyte.ioを使用してください。confidentialクライアントタイプを使用して、OAuth クライアントの作成ガイドの手順に従ってください。クライアント ID とクライアントシークレットをそれぞれAB_CLIENT_IDとAB_CLIENT_SECRET環境変数に使用してください。
- プロジェクトの依存関係として Go Extend SDK を追加している必要があります。詳細については、Go Extend SDK の使用開始を参照してください。
validator パッケージのインポートとユーザートークンの検証
-
validator パッケージをインポートします。
インポートセクションに以下を追加してください。
import (
...
"github.com/AccelByte/accelbyte-go-modular-sdk/services-api/pkg/utils/auth/validator"
...
) -
Go Modular Extend SDK を使用してユーザートークンを検証します。
トークンバリデーターを初期化し、
Validate関数を使用してユーザートークンを検証します。tokenValidator := validator.NewTokenValidator(authService, time.Hour)
tokenValidator.Initialize()
err = tokenValidator.Validate(accessToken, &requiredPermission, &namespace, nil)
次のステップ
- 次のステップとして、
localトークン検証を試すことを検討してください。方法については、AccelByte Go Modular SDK ガイドを参照してください。
リソース
- Go Modular Extend SDK のより高度な使用方法については、Operations ドキュメントを参照してください。