フェデレーテッドアカウント
デフォルトでは、WaaS APIはメールアドレスごとに1つのアカウントのみ許可しています。ユーザーが以前と同じメールアドレスで異なる方法でログインしようとすると、EmailAlreadyInUse
エラーが返されます。
例:ユーザーがGoogleサインインでアカウントを作成し、その後同じメールアドレスでメール+OTPサインインを試みた場合、このエラーが発生します。
デフォルト(SequenceLoginWindow
を使用している場合)では、SDKは自動的にSequenceFrontend > Prefabs > FederatedAuthPopupPanel
にあるFederatedAuthPopupPanel
プレハブを開きます。このプレハブは自由にカスタマイズしたり、SequenceLoginWindowプレハブ内で差し替えたりできます。このパネルは、ユーザーに重複したログイン方法が許可されていないことを説明し、ログイン画面に戻って関連付けられたログイン方法(または別のメールアドレス)でサインインするよう促します。
SequenceConfig
で EnableMultipleAccountsPerEmail
が有効になっている場合、FederatedAuthPopupPanel
でユーザーが同じメールアドレスに別のアカウントを作成できるオプションが表示されます。ユーザーがアカウントにログインすると、SDKは自動的に FederateAccount
リクエスト(SequenceLogin
参照)を実行します。これにより、失敗したログイン方法もそのメールアドレスに紐付けられ、今後はどちらの方法でもサインインできるようになります。上記の例では、ユーザーはGoogleサインインまたはメール+OTPのどちらでもアカウントにログインできるようになります。
アカウントの手動フェデレーション
アプリにボタンを追加して、ユーザーが自身のメールアドレスに別のログイン方法を紐付けられるようにしたい場合(特にゲストログインを利用している場合など)、SequenceLogin
の参照を取得し、該当するログイン方法の FederateAccount
メソッドを呼び出してください。
ここで walletAddress は、ユーザー認証後に取得した SequenceWallet
のアドレスです。
ログインウィンドウのひな型を再利用する
デフォルトの LoginPanel を使ってユーザーが手動でアカウントをフェデレート/リンクできるようにするには、SequenceLogin
インスタンスで SetConnectedWalletAddress
を呼び出すか、現在認証されているウォレットアドレスを指定して SequenceLogin.GetInstanceToFederateAuth
を呼び出してください。
これにより、SequenceLogin インスタンスが新しいセッションを作成するのではなく、アカウントのフェデレーションを行うように設定されます。
RemoveConnectedWalletAddress()
を呼び出し、SequenceLogin を再設定して新しいセッションを作成できるようにしましょう。例:
フェデレーテッドアカウントの削除
フェデレーテッドアカウントの関連付けを削除したい場合は、IWallet.RemoveFederatedAccount
メソッドで実行できます。