emailVerified AngularFire2 エクスポート パイプを使用して、電子メールがまだ検証されていないユーザーを特定のルートからリダイレクトする例が見つかりません。
redirectLoggedInTo(redirect)、redirectUnauthorizedTo(redirect)、および hasCustomClaim(claim) の使用方法に関するユースケースが提供されます。
AngularFire チームは都合よく、GitHub ページ (https://github.com/angular/angularfire/blob/master/docs/auth/router-guards.md) に例を掲載することを避けています。
------------------------
ソース コードの emailVerified は次のとおりです:
export const emailVerified: AuthPipe = map(user => !!user && user.emailVerified)
したがって、次のように 2 番目のマップを使用できます。
import { AngularFireAuthGuard, emailVerified } from '@angular/fire/auth-guard'
import { map } from 'rxjs/operators'
...
const redirectUnverifiedUser = () =>
pipe(
emailVerified,
map(emailVerified => {
if (emailVerified) {
return true;
} else {
return ['login', 'verify-email']
}
})
);
...そしてルート設定内:
{
path: 'example',
...
canActivate: [AngularFireAuthGuard],
data: { authGuardPipe: redirectUnverifiedUser },
},
未承認のユーザーをログイン ページにリダイレクトする必要があるが、電子メールを認証していない承認済みのユーザーも別のページにリダイレクトする必要がある場合は、次のコマンドを使用できます。
import { AngularFireAuthGuard, AuthPipeGenerator } from '@angular/fire/auth-guard'
import { map } from 'rxjs/operators'
...
const redirectUnauthorizedOrUnverifiedUser: AuthPipeGenerator = () =>
map(user => {
if (user) {
if (user.emailVerified) {
return true
} else {
return ['login', 'verify-email']
}
} else {
return ['login']
}
})
...そしてルート設定内で次のようにします:
{
path: 'example',
...
canActivate: [AngularFireAuthGuard],
data: { authGuardPipe: redirectUnauthorizedOrUnverifiedUser },
},
1
私の新しい質問に答えてもらえますか: stackoverflow.com/questions/74575931/…参考までに、あなたの答えは古くなっています。 AngularFireAuthGuard はモジュール '@angular/fire/auth-guard' のエクスポートされたメンバーではなくなりました。
– トーマス デビッド キーホー
2022 年 11 月 26 日 16:09