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

软件忍者

登录成功后,我试图重定向用户,但由于某些原因,我无法实现它。我尝试了多种方法,但是没有用。任何帮助,将不胜感激。我正在将Angular 2最新版本用于Firebase数据库。

还有任何建议,如果我的代码可以改进,那就太好了:)

谢谢,感激不尽

auth.services.ts

import { Injectable } from "@angular/core";
import {Router} from "@angular/router";
import { User } from "./user.interface";
declare var firebase: any;

@Injectable()
export class AuthService{
  constructor(private router: Router) {}
  redirectURL: string;

  signupUser(user: User) {
    firebase.auth().createUserWithEmailAndPassword(user.email, user.password)
        .catch(function (error) {
          console.log(error);
        });
  }

  signinUser(user: User) {
      firebase.auth().signInWithEmailAndPassword(user.email, user.password)
          .catch(function (error) {
              console.log(error);
          });
  }
  logout() {
    firebase.auth().signOut();
    this.router.navigate(['/signin']);
  }

  isAuthenticated() {
    var user = firebase.auth().currentUser;
      if(user){
          return true;
      } else {
          return false
      }
  }
}

认证卫士

import { Injectable } from "@angular/core";
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from "@angular/router";
import { AuthService } from "./auth.service";
import { Observable } from "rxjs/Rx";

@Injectable()
export class AuthGuard implements CanActivate {
    constructor(private authService: AuthService, private router: Router) {}
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
        let url: string = state.url;
        return this.checkLogin(url);
    }

    checkLogin(url: string): boolean {
        if (this.authService.isAuthenticated()) { return true; }

        // Store the attempted URL for redirecting
        this.authService.redirectURL = url;

        // Navigate to the login page if the user access Guarded pages
        this.router.navigate(['/signin']);
        return false;
    }
}
卡列布

使用基于承诺的登录来检测您何时成功登录,并重新路由到登录页面。

signinUser(user: User) {
  firebase.auth().signInWithEmailAndPassword(user.email, user.password)
    .then((userInfo) => {
      // You are now logged in
      // Maybe redirect to the first logged in page
      // this.router.navigate([ 'whatever' ]);
    })
    .catch((error) => {
      // Ran into some issues
      // Maybe report the error on your sign in page
    });
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

登录身份验证后进行快速重定向

来自分类Dev

登录身份验证后进行快速重定向

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Firebase身份验证在重定向时不进行身份验证

来自分类Dev

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

来自分类Dev

在Laravel 5中进行身份验证后重定向

来自分类Dev

如何在ServiceStack中进行身份验证后重定向到帖子

来自分类Dev

Passport.js 在对用户进行身份验证后不重定向

来自分类Dev

Javascript Firebase身份验证和Firestore:页面重定向,然后保存用户数据

来自分类Dev

OAuth2对API进行身份验证-无法重定向回我的应用

来自分类Dev

使用Spring Boot进行OAuth2身份验证后无法正确重定向

来自分类Dev

使用存储和Cookie(不使用Firebase)在Flutter中进行身份验证?

来自分类Dev

如何在域上(使用ssl)对用户进行身份验证以及如何在其他域中重定向和创建会话?

来自分类Dev

使用Node.js和Passport进行身份验证后,如何将用户重定向至带有其ID的主页?

来自分类Dev

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

来自分类Dev

在expressJS应用中进行身份验证

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

重定向路由以在 Laravel 中进行验证

来自分类Dev

使用 Android 进行 Firebase 电子邮件和密码身份验证 - 用户注册

来自分类Dev

可以在 firebase 中的 ios 和 android 项目之间共享用户以进行身份验证

来自分类Dev

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

来自分类Dev

确保在Angular中对用户进行身份验证

来自分类Dev

通过令牌/密钥进行用户和API身份验证

来自分类Dev

使用Go和AngularJS进行用户身份验证

Related 相关文章

  1. 1

    登录身份验证后进行快速重定向

  2. 2

    登录身份验证后进行快速重定向

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

    Firebase身份验证在重定向时不进行身份验证

  7. 7

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

  8. 8

    在Laravel 5中进行身份验证后重定向

  9. 9

    如何在ServiceStack中进行身份验证后重定向到帖子

  10. 10

    Passport.js 在对用户进行身份验证后不重定向

  11. 11

    Javascript Firebase身份验证和Firestore:页面重定向,然后保存用户数据

  12. 12

    OAuth2对API进行身份验证-无法重定向回我的应用

  13. 13

    使用Spring Boot进行OAuth2身份验证后无法正确重定向

  14. 14

    使用存储和Cookie(不使用Firebase)在Flutter中进行身份验证?

  15. 15

    如何在域上(使用ssl)对用户进行身份验证以及如何在其他域中重定向和创建会话?

  16. 16

    使用Node.js和Passport进行身份验证后,如何将用户重定向至带有其ID的主页?

  17. 17

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

  18. 18

    在expressJS应用中进行身份验证

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

    重定向路由以在 Laravel 中进行验证

  24. 24

    使用 Android 进行 Firebase 电子邮件和密码身份验证 - 用户注册

  25. 25

    可以在 firebase 中的 ios 和 android 项目之间共享用户以进行身份验证

  26. 26

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

  27. 27

    确保在Angular中对用户进行身份验证

  28. 28

    通过令牌/密钥进行用户和API身份验证

  29. 29

    使用Go和AngularJS进行用户身份验证

热门标签

归档