onAuthStateChange()

onAuthStateChange()用于监听认证事件,接收每次认证事件发生时的通知。

  • 认证事件类型: SIGNED_IN(登录)SIGNED_OUT(登出)TOKEN_REFRESHED(令牌刷新)USER_UPDATED(用户信息更新)PASSWORD_RECOVERY(密码恢复)
  • 然而目前使用 onAuthStateChange() 方法在不同的标签页之间无效。 举例来说,在密码重置流程中,如果用户在一个标签页请求密码重置链接,当用户点击链接时,原始的标签页将无法收到SIGNED_IN(登录)PASSWORD_RECOVERY(密码恢复)事件。

案例教程

案例1 (监听认证变化)#

1supabase.auth.onAuthStateChange((event, session) => {
2console.log(event, session)
3})

案例2 (监听密码恢复事件)#

1supabase.auth.onAuthStateChange((event, session) => {
2if (event == 'PASSWORD_RECOVERY') {
3  console.log('PASSWORD_RECOVERY', session)
4
5  // show screen to update user's password
6  showPasswordResetScreen(true)
7}
8})

案例3 (监听登录)#

1supabase.auth.onAuthStateChange((event, session) => {
2if (event == 'SIGNED_IN') console.log('SIGNED_IN', session)
3})

案例4 (监听退出登录)#

1supabase.auth.onAuthStateChange((event, session) => {
2if (event == 'SIGNED_OUT') console.log('SIGNED_OUT', session)
3})

案例5 (监听令牌刷新)#

1supabase.auth.onAuthStateChange((event, session) => {
2if (event == 'TOKEN_REFRESHED') console.log('TOKEN_REFRESHED', session)
3})

案例6 (监听用户的更新信息)#

1supabase.auth.onAuthStateChange((event, session) => {
2if (event == 'USER_UPDATED') console.log('USER_UPDATED', session)
3})

参数说明

  • 回调(callback)[必要参数]
    函数类型

    当发生认证事件时要调用的回调函数。