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 Auth は認証フロー中にイベントを発行します。これにより、ユーザーフローをリアルタイムで監視し、カスタムビジネスロジックをトリガーできます。たとえば、データをキャプチャし、アプリの状態を同期し、ユーザーエクスペリエンスをパーソナライズしたい場合があります。サインインやサインアウトなど、Auth ライフサイクル全体のイベントをリスンして対応できます。

AWS Cognito Auth プラグインは、Amplify Hub を通じて重要なイベントを送信します。次のようにこれらのイベントをリスニングできます:

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// Assumes `unsubscribeToken` is declared as an instance variable in your view
unsubscribeToken = Amplify.Hub.listen(to: .auth) { payload in
switch payload.eventName {
case HubPayload.EventName.Auth.signedIn:
print("User signed in")
// Update UI
case HubPayload.EventName.Auth.sessionExpired:
print("Session expired")
// Re-authenticate the user
case HubPayload.EventName.Auth.signedOut:
print("User signed out")
// Update UI
case HubPayload.EventName.Auth.userDeleted:
print("User deleted")
// Update UI
default:
break
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// Assumes `sink` is declared as an instance variable in your view controller
sink = Amplify.Hub
.publisher(for: .auth)
.sink { payload in
switch payload.eventName {
case HubPayload.EventName.Auth.signedIn:
print("User signed in")
// Update UI
case HubPayload.EventName.Auth.sessionExpired:
print("Session expired")
// Re-authenticate the user
case HubPayload.EventName.Auth.signedOut:
print("User signed out")
// Update UI
case HubPayload.EventName.Auth.userDeleted:
print("User deleted")
// Update UI
default:
break
}
}
}