Need to configure your backend?See Build a Backend →
サインアウト
Amplifyは、Amplify Authなどのバックエンドリソースと対話するためのクライアントライブラリを提供します。
ユーザーをアプリケーションからサインアウトするには、signOut APIを使用します。
Amplify.Auth.signOut( signOutResult -> { if (signOutResult instanceof AWSCognitoAuthSignOutResult.CompleteSignOut) { // Sign Out completed fully and without errors. Log.i("AuthQuickStart", "Signed out successfully"); } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.PartialSignOut) { // Sign Out completed with some errors. User is signed out of the device. AWSCognitoAuthSignOutResult.PartialSignOut partialSignOutResult = (AWSCognitoAuthSignOutResult.PartialSignOut) signOutResult;
HostedUIError hostedUIError = partialSignOutResult.getHostedUIError(); if (hostedUIError != null) { Log.e("AuthQuickStart", "HostedUI Error", hostedUIError.getException()); // Optional: Re-launch hostedUIError.getUrl() in a Custom tab to clear Cognito web session. }
GlobalSignOutError globalSignOutError = partialSignOutResult.getGlobalSignOutError(); if (globalSignOutError != null) { Log.e("AuthQuickStart", "GlobalSignOut Error", globalSignOutError.getException()); // Optional: Use escape hatch to retry revocation of globalSignOutError.getAccessToken(). }
RevokeTokenError revokeTokenError = partialSignOutResult.getRevokeTokenError(); if (revokeTokenError != null) { Log.e("AuthQuickStart", "RevokeToken Error", revokeTokenError.getException()); // Optional: Use escape hatch to retry revocation of revokeTokenError.getRefreshToken(). } } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.FailedSignOut) { AWSCognitoAuthSignOutResult.FailedSignOut failedSignOutResult = (AWSCognitoAuthSignOutResult.FailedSignOut) signOutResult; // Sign Out failed with an exception, leaving the user signed in. Log.e("AuthQuickStart", "Sign out Failed", failedSignOutResult.getException()); }});Amplify.Auth.signOut { signOutResult -> when(signOutResult) { is AWSCognitoAuthSignOutResult.CompleteSignOut -> { // Sign Out completed fully and without errors. Log.i("AuthQuickStart", "Signed out successfully") } is AWSCognitoAuthSignOutResult.PartialSignOut -> { // Sign Out completed with some errors. User is signed out of the device. signOutResult.hostedUIError?.let { Log.e("AuthQuickStart", "HostedUI Error", it.exception) // Optional: Re-launch it.url in a Custom tab to clear Cognito web session.
} signOutResult.globalSignOutError?.let { Log.e("AuthQuickStart", "GlobalSignOut Error", it.exception) // Optional: Use escape hatch to retry revocation of it.accessToken. } signOutResult.revokeTokenError?.let { Log.e("AuthQuickStart", "RevokeToken Error", it.exception) // Optional: Use escape hatch to retry revocation of it.refreshToken. } } is AWSCognitoAuthSignOutResult.FailedSignOut -> { // Sign Out failed with an exception, leaving the user signed in. Log.e("AuthQuickStart", "Sign out Failed", signOutResult.exception) } }}val signOutResult = Amplify.Auth.signOut()when(signOutResult) { is AWSCognitoAuthSignOutResult.CompleteSignOut -> { // Sign Out completed fully and without errors. Log.i("AuthQuickStart", "Signed out successfully") } is AWSCognitoAuthSignOutResult.PartialSignOut -> { // Sign Out completed with some errors. User is signed out of the device. signOutResult.hostedUIError?.let { Log.e("AuthQuickStart", "HostedUI Error", it.exception) // Optional: Re-launch it.url in a Custom tab to clear Cognito web session.
} signOutResult.globalSignOutError?.let { Log.e("AuthQuickStart", "GlobalSignOut Error", it.exception) // Optional: Use escape hatch to retry revocation of it.accessToken. } signOutResult.revokeTokenError?.let { Log.e("AuthQuickStart", "RevokeToken Error", it.exception) // Optional: Use escape hatch to retry revocation of it.refreshToken. } } is AWSCognitoAuthSignOutResult.FailedSignOut -> { // Sign Out failed with an exception, leaving the user signed in. Log.e("AuthQuickStart", "Sign out Failed", signOutResult.exception) }}RxAmplify.Auth.signOut() .subscribe(signOutResult -> { if (signOutResult instanceof AWSCognitoAuthSignOutResult.CompleteSignOut) { // Sign Out completed fully and without errors. Log.i("AuthQuickStart", "Signed out successfully"); } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.PartialSignOut) { // Sign Out completed with some errors. User is signed out of the device. AWSCognitoAuthSignOutResult.PartialSignOut partialSignOutResult = (AWSCognitoAuthSignOutResult.PartialSignOut) signOutResult;
HostedUIError hostedUIError = partialSignOutResult.getHostedUIError(); if (hostedUIError != null) { Log.e("AuthQuickStart", "HostedUI Error", hostedUIError.getException()); // Optional: Re-launch hostedUIError.getUrl() in a Custom tab to clear Cognito web session. }
GlobalSignOutError globalSignOutError = partialSignOutResult.getGlobalSignOutError(); if (globalSignOutError != null) { Log.e("AuthQuickStart", "GlobalSignOut Error", globalSignOutError.getException()); // Optional: Use escape hatch to retry revocation of globalSignOutError.getAccessToken(). }
RevokeTokenError revokeTokenError = partialSignOutResult.getRevokeTokenError(); if (revokeTokenError != null) { Log.e("AuthQuickStart", "RevokeToken Error", revokeTokenError.getException()); // Optional: Use escape hatch to retry revocation of revokeTokenError.getRefreshToken(). } } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.FailedSignOut) { AWSCognitoAuthSignOutResult.FailedSignOut failedSignOutResult = (AWSCognitoAuthSignOutResult.FailedSignOut) signOutResult; // Sign Out failed with an exception, leaving the user signed in. Log.e("AuthQuickStart", "Sign out Failed", failedSignOutResult.getException()); } });すべてのデバイスからユーザーをサインアウトするグローバルサインアウトを実行することもできます。これは、ユーザーに発行されたすべてのリフレッシュトークンも無効にします。ユーザーの現在のアクセストークンとIDトークンは、リフレッシュトークンの有効期限が切れるまで他のデバイスで有効なままです(アクセストークンとIDトークンは発行後1時間で期限切れになります)。
AuthSignOutOptions options = AuthSignOutOptions.builder() .globalSignOut(true) .build();
Amplify.Auth.signOut(options, signOutResult -> { if (signOutResult instanceof AWSCognitoAuthSignOutResult.CompleteSignOut) { // handle successful sign out } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.PartialSignOut) { // handle partial sign out } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.FailedSignOut) { // handle failed sign out }});val options = AuthSignOutOptions.builder() .globalSignOut(true) .build()
Amplify.Auth.signOut(options) { signOutResult -> when(signOutResult) { is AWSCognitoAuthSignOutResult.CompleteSignOut -> { // handle successful sign out } is AWSCognitoAuthSignOutResult.PartialSignOut -> { // handle partial sign out } is AWSCognitoAuthSignOutResult.FailedSignOut -> { // handle failed sign out } }}val options = AuthSignOutOptions.builder() .globalSignOut(true) .build()
val signOutResult = Amplify.Auth.signOut(options)
when(signOutResult) { is AWSCognitoAuthSignOutResult.CompleteSignOut -> { // handle successful sign out } is AWSCognitoAuthSignOutResult.PartialSignOut -> { // handle partial sign out } is AWSCognitoAuthSignOutResult.FailedSignOut -> { // handle failed sign out }}AuthSignOutOptions options = AuthSignOutOptions.builder() .globalSignOut(true) .build(); RxAmplify.Auth.signOut(options) .subscribe(signOutResult -> { if (signOutResult instanceof AWSCognitoAuthSignOutResult.CompleteSignOut) { // handle successful sign out } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.PartialSignOut) { // handle partial sign out } else if (signOutResult instanceof AWSCognitoAuthSignOutResult.FailedSignOut) { // handle failed sign out } });