您如何确定用户是否已在Angular Firebase中进行身份验证?

侄子

如果用户未使用AngularFireAuth进行身份验证,则我正在编写防护措施以将用户重定向到登录页面。如果没有该库,我会将令牌存储在本地/会话存储中,并且当防护触发时,我将检查存储以查看令牌是否存在。AngularFireAuth将令牌存储在数据库中(其中包含身份验证信息):

Firefox开发工具中索引数据库中存储的AngularFireAuth图像

但是,直接进行检查是不明智的,因为AngularFireAuth可能会在将来的任何时间更改其工作方式。它不完全是已记录的公共API的一部分。

在较旧版本的AngularFireAuth中,我可以在服务中包含此方法以执行此检查:

import { AngularFireAuth } from '@angular/fire/auth';

export class AuthService {
  constructor(private readonly service: AngularFireAuth) {}

  public login(credentials: Credentials) {
    const { email, password } = credentials;
    return this.service.auth.signInWithEmailAndPassword(email, password);
  }

  public isLoggedIn(): boolean {
    return !!this.service.auth.currentUser;
  }
}

但是,刷新后这种情况不会持续。因此,当我在系统中导航时,它可以正常工作,但是如果我刷新或离开然后再回来,则提示我重新登录。

如何编写isLoggedIn可以在我的守卫中调用的方法?

Fulya D.

我建议使用AngulaFireAuthGuard。无需添加任何特殊方法,它即可为您处理所有事情。

因此,您可以在应用程序路由模块内部直接添加它,而不必使用常规的防护措施。

这是一个例子:

进入app.module:

import { AngularFireAuthGuardModule } from '@angular/fire/auth-guard'; 

@NgModule({
   declarations: [],
   imports: [
      AngularFireAuthGuardModule,
   ],
   providers: [],
   bootstrap: []
})

并进入app-routing.module:

import { AngularFireAuthGuard, redirectUnauthorizedTo, redirectLoggedInTo } from '@angular/fire/auth-guard';

const redirectUnauthorizedToHome = () => redirectUnauthorizedTo(['home']);
const redirectLoggedInToAccount = () => redirectLoggedInTo(['my-account']);

const routes: Routes = [
  { path: 'my-account', component: MyAccountComponent, canActivate: [AngularFireAuthGuard], data: { authGuardPipe: redirectUnauthorizedToHome } },
  { path: 'create-account', component: CreateAccountComponent, canActivate: [AngularFireAuthGuard], data: { authGuardPipe: redirectLoggedInToAccount } },
];

您可以从此处查看详细信息:https : //github.com/angular/angularfire/blob/master/docs/auth/router-guards.md

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Angular2和Firebase中进行用户身份验证后进行重定向

来自分类Dev

客户端检查是否在Firebase中进行了身份验证

来自分类Dev

如何在angular 2中进行身份验证

来自分类Dev

如何在Dropwizard中进行身份验证

来自分类Dev

在Laravel中进行身份验证后如何重定向?

来自分类Dev

如何在Dropwizard中进行身份验证

来自分类Dev

如何使用Cookie在instagram中进行身份验证?

来自分类Dev

如何在中继中进行身份验证

来自分类Dev

如何在 Rogglevision 中进行身份验证

来自分类Dev

将电话号码存储在用户信息/用户配置文件中,无需在 Firebase 中进行身份验证

来自分类Dev

如何使用Google用户名进行身份验证。点亮Firebase身份验证

来自分类Dev

如何使用 firebase sdk 对用户进行身份验证

来自分类Dev

如何使用 ChatSDK 对 Firebase 用户进行身份验证?

来自分类Dev

在Firebase应用之间对用户进行身份验证

来自分类Dev

在Firebase上进行用户身份验证,显示受限内容

来自分类Dev

如何使用Firebase refreshToken重新进行身份验证?

来自分类Dev

在Microsoft Teams Bot中进行身份验证后如何获取用户访问令牌?

来自分类Dev

检查用户是否使用 PHP 在服务器上通过 Firebase 身份验证进行身份验证?

来自分类Dev

在Android WebView中进行身份验证重定向后获取“错误的用户名或密码”

来自分类Dev

我应该如何检查用户是否在MVC5中进行了身份验证?

来自分类Dev

Undertow 是否具有与 Tomcat WebAuthentication 等效的用于在 Web 层中进行身份验证的功能?

来自分类Dev

在发送数据以在Angular中进行身份验证之前转换为Json

来自分类Dev

如何在Razor中进行Active Directory身份验证(cshtml)

来自分类Dev

如何在Dart中使用Oauth2在Google Fusion Tables中进行身份验证?

来自分类Dev

在node.js中进行护照身份验证后如何发送json作为响应

来自分类Dev

如何在Dropwizard中进行资源的基本身份验证

来自分类Dev

在IOS中进行身份验证后,Google Plus回调函数如何工作

来自分类Dev

如何使用客户端证书在Web API中进行身份验证和授权

来自分类Dev

如何在Scala Play框架中进行Twitter反向身份验证?

Related 相关文章

  1. 1

    在Angular2和Firebase中进行用户身份验证后进行重定向

  2. 2

    客户端检查是否在Firebase中进行了身份验证

  3. 3

    如何在angular 2中进行身份验证

  4. 4

    如何在Dropwizard中进行身份验证

  5. 5

    在Laravel中进行身份验证后如何重定向?

  6. 6

    如何在Dropwizard中进行身份验证

  7. 7

    如何使用Cookie在instagram中进行身份验证?

  8. 8

    如何在中继中进行身份验证

  9. 9

    如何在 Rogglevision 中进行身份验证

  10. 10

    将电话号码存储在用户信息/用户配置文件中,无需在 Firebase 中进行身份验证

  11. 11

    如何使用Google用户名进行身份验证。点亮Firebase身份验证

  12. 12

    如何使用 firebase sdk 对用户进行身份验证

  13. 13

    如何使用 ChatSDK 对 Firebase 用户进行身份验证?

  14. 14

    在Firebase应用之间对用户进行身份验证

  15. 15

    在Firebase上进行用户身份验证,显示受限内容

  16. 16

    如何使用Firebase refreshToken重新进行身份验证?

  17. 17

    在Microsoft Teams Bot中进行身份验证后如何获取用户访问令牌?

  18. 18

    检查用户是否使用 PHP 在服务器上通过 Firebase 身份验证进行身份验证?

  19. 19

    在Android WebView中进行身份验证重定向后获取“错误的用户名或密码”

  20. 20

    我应该如何检查用户是否在MVC5中进行了身份验证?

  21. 21

    Undertow 是否具有与 Tomcat WebAuthentication 等效的用于在 Web 层中进行身份验证的功能?

  22. 22

    在发送数据以在Angular中进行身份验证之前转换为Json

  23. 23

    如何在Razor中进行Active Directory身份验证(cshtml)

  24. 24

    如何在Dart中使用Oauth2在Google Fusion Tables中进行身份验证?

  25. 25

    在node.js中进行护照身份验证后如何发送json作为响应

  26. 26

    如何在Dropwizard中进行资源的基本身份验证

  27. 27

    在IOS中进行身份验证后,Google Plus回调函数如何工作

  28. 28

    如何使用客户端证书在Web API中进行身份验证和授权

  29. 29

    如何在Scala Play框架中进行Twitter反向身份验证?

热门标签

归档