Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.
Gen1 DocsLegacy

Page updated Mar 26, 2026

サインアウト

Amplifyは、Amplify Authなどのバックエンドリソースと対話するためのクライアントライブラリを提供します。

フロントエンドアプリケーションでAmplify Authの使用を開始する最速の方法は、カスタマイズ可能なUIと完全な認証フローを提供するAuthenticatorコンポーネントです。

ユーザーをアプリケーションからサインアウトするには、signOut APIを使用します。

func signOutLocally() async {
let result = await Amplify.Auth.signOut()
guard let signOutResult = result as? AWSCognitoSignOutResult
else {
print("Signout failed")
return
}
print("Local signout successful: \(signOutResult.signedOutLocally)")
switch signOutResult {
case .complete:
// Sign Out completed fully and without errors.
print("Signed out successfully")
case let .partial(revokeTokenError, globalSignOutError, hostedUIError):
// Sign Out completed with some errors. User is signed out of the device.
if let hostedUIError = hostedUIError {
print("HostedUI error \(String(describing: hostedUIError))")
}
if let globalSignOutError = globalSignOutError {
// Optional: Use escape hatch to retry revocation of globalSignOutError.accessToken.
print("GlobalSignOut error \(String(describing: globalSignOutError))")
}
if let revokeTokenError = revokeTokenError {
// Optional: Use escape hatch to retry revocation of revokeTokenError.accessToken.
print("Revoke token error \(String(describing: revokeTokenError))")
}
case .failed(let error):
// Sign Out failed with an exception, leaving the user signed in.
print("SignOut failed with \(error)")
}
}
func signOutLocally() -> AnyCancellable {
Amplify.Publisher.create {
await Amplify.Auth.signOut()
}.sink(receiveValue: { result in
guard let signOutResult = result as? AWSCognitoSignOutResult
else {
print("Signout failed")
return
}
print("Local signout successful: \(signOutResult.signedOutLocally)")
switch signOutResult {
case .complete:
// Sign Out completed fully and without errors.
print("Signed out successfully")
case let .partial(revokeTokenError, globalSignOutError, hostedUIError):
// Sign Out completed with some errors. User is signed out of the device.
if let hostedUIError = hostedUIError {
print("HostedUI error \(String(describing: hostedUIError))")
}
if let globalSignOutError = globalSignOutError {
// Optional: Use escape hatch to retry revocation of globalSignOutError.accessToken.
print("GlobalSignOut error \(String(describing: globalSignOutError))")
}
if let revokeTokenError = revokeTokenError {
// Optional: Use escape hatch to retry revocation of revokeTokenError.accessToken.
print("Revoke token error \(String(describing: revokeTokenError))")
}
case .failed(let error):
// Sign Out failed with an exception, leaving the user signed in.
print("SignOut failed with \(error)")
}
})
}

すべてのデバイスからユーザーをサインアウトするグローバルサインアウトを実行することもできます。これは、ユーザーに発行されたすべてのリフレッシュトークンも無効にします。ユーザーの現在のアクセストークンとIDトークンは、リフレッシュトークンの有効期限が切れるまで他のデバイスで有効なままです(アクセストークンとIDトークンは発行後1時間で期限切れになります)。

import AWSCognitoAuthPlugin
func signOutGlobally() async {
let result = await Amplify.Auth.signOut(options: .init(globalSignOut: true))
guard let signOutResult = result as? AWSCognitoSignOutResult
else {
print("Signout failed")
return
}
print("Local signout successful: \(signOutResult.signedOutLocally)")
switch signOutResult {
case .complete:
// handle successful sign out
case .failed(let error):
// handle failed sign out
case let .partial(revokeTokenError, globalSignOutError, hostedUIError):
// handle partial sign out
}
}
func signOutGlobally() -> AnyCancellable {
Amplify.Publisher.create {
await Amplify.Auth.signOut(options: .init(globalSignOut: true))
}.sink(receiveValue: { result in
guard let signOutResult = result as? AWSCognitoSignOutResult
else {
print("Signout failed")
return
}
print("Local signout successful: \(signOutResult.signedOutLocally)")
switch signOutResult {
case .complete:
// handle successful sign out
case .failed(let error):
// handle failed sign out
case let .partial(revokeTokenError, globalSignOutError, hostedUIError):
// handle partial sign out
}
})
}