首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Auth guard with observable?

Auth guard with observable?
EN

Stack Overflow用户
提问于 2018-09-03 18:55:52
回答 1查看 552关注 0票数 1

好的,假设我有auth guard。我只想做一件简单的事情:发送请求到后端,以防它发送给我用户信息,这意味着用户是经过身份验证的,我想返回true。否则它会向我发送错误,所以我希望捕获该错误并重定向用户。如何在rxjs中做到这一点?这似乎过于复杂了..。我想要做的是检查用户是否已登录,以及他的令牌是否有效。所以我知道我需要发送一个请求,但是如何管理错误或响应呢?我也明白,如果本地存储中没有令牌,我应该返回false,甚至不应该发送任何请求。当然这是行不通的,但我根本不知道怎么做……

代码语言:javascript
复制
// guard
return this.authService.checkUserAuthenticated();
// service
checkUserAuthenticated() {
    this.http.post(`${this.domainName}api/auth/userinfo`, null)
      .subscribe(
      (data) => true,
    (err) => false
      );
  }
EN

回答 1

Stack Overflow用户

发布于 2018-09-03 19:01:59

您可以使用authguard对后端进行api调用,然后返回true或false

代码语言:javascript
复制
export class AuthGuard implements CanActivate {
    constructor(private router: Router, private service:Service) {}

    canActivate(
        next: ActivatedRouteSnapshot,
        state: RouterStateSnapshot): boolean {
        this.service.Authenticate().subscribe(
             (data: any)=>{ any condition to check and then return true},
             (error: any)=>{ return false;});

    }
}

并将authguard身份验证方法添加到路由文件。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52148327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档