ASP.NET Core API / Angular-身份验证问题

格奥尔基·迪米特洛夫(Georgi Dimitrov)

因此,我目前正在进行一个我想做的项目,基本上是一个食品商店项目。问题是我有用户会将产品添加到他/她的购物车中并购买。我还有一个管理员,它将添加/删除/更改产品/用户。所以最主要的是,当我在邮递员中测试API时-它没有问题,我认为问题出在前端,因为当我在google中打开控制台时,它显示401错误这是我的拦截器和警卫的代码。并且还使用角色(用户/管理员)进行身份验证。

拦截器:

import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { Injectable } from "@angular/core";
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {

    constructor(private router: Router) { }

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        if (localStorage.getItem('token') !== null) {
            let request = req.clone({
                headers: req.headers.set('Authorization', 'Bearer ' + localStorage.getItem('token'))
            })

            return next.handle(request).pipe(
                tap(
                    success => { },
                    error => {
                        if (error.status == 401) {
                            localStorage.clear()
                            this.router.navigateByUrl('/home')
                        } else {
                            localStorage.setItem('error', error)
                        }
                    }
                )
            )
        } else {
            return next.handle(req.clone())
        }
    }
}

守卫:

import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class AuthGuard implements CanActivate {

  constructor(private router: Router) { }

  canActivate(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
    if (localStorage.getItem('token') !== null) {
      return true
    } else {
      this.router.navigateByUrl('/home')
      return false
    }
  }

}

莉诺·麦凯

如果您的api与邮递员运行良好,则应使用相同的授权标头复制请求,也许您没有正确传递令牌甚至生成令牌。您可以尝试这样的请求。

return this.http.get<Something[]>(url, {
      headers: new HttpHeaders().set('Authorization',
        `bearer ${access_token}`).set('Content-Type', 'application/json')
    });

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Postman使用Cookie身份验证测试ASP.NET Core Web API?

来自分类Dev

静态文件 - asp.net web api core 2.1 身份验证方案承载

来自分类Dev

Web 应用程序和 API AzureAD 身份验证流程 ASP.NET Core

来自分类Dev

使用 ASP.NET Core Web API 的 Facebook JWT 身份验证

来自分类Dev

响应 JWT 错误的身份验证 Asp.Net Core Web Api

来自分类Dev

使用ASP.Net MVC / Web API进行PayPal结帐-令牌身份验证问题

来自分类Dev

ASP.NET Core中的承载令牌身份验证

来自分类Dev

ASP.NET Core中的基本身份验证

来自分类Dev

ASP.Net Core SAML身份验证

来自分类Dev

什么是ASP.NET Core的Microsoft身份验证方案?

来自分类Dev

ASP.Net身份和Google身份验证问题

来自分类Dev

.NET Core API中的Windows身份验证自动登录

来自分类Dev

.Net Core Web API的Auth0身份验证

来自分类Dev

使用ASP.net API的承载令牌身份验证

来自分类Dev

ASP.NET 5中的Web API身份验证

来自分类Dev

当使用ASP.NET Core Web API中没有身份的cookie身份验证时,如何在登录时刷新CSRF令牌

来自分类Dev

AngularJS + ASP.NET Web API + ASP.NET MVC身份验证

来自分类Dev

如何使用Angular个人用户帐户身份验证自定义ASP.NET Core Web应用程序的登录页面?

来自分类Dev

我的ASP.NET Core App Service Web API如何同时支持AAD承载令牌和客户端证书身份验证?

来自分类Dev

ASP。带有Cookie身份验证的Net Core 2.2:未经API专用控制器授权时,如何避免页面重定向

来自分类Dev

在Linux上的ASP.NET Core MVC项目中进行身份验证后,运行项目时出现问题

来自分类Dev

如何从 Angular 2 访问 Asp.net Core Api

来自分类Dev

返回时,ASP .NET Core Cookie身份验证过期从时间戳更改为“会话”

来自分类Dev

在ASP.NET Core中使用Authorize属性和自定义Cookie身份验证

来自分类Dev

在Asp.net core / 5中使用策略库进行令牌身份验证

来自分类Dev

如何在ASP.NET Core 1.0中配置身份验证

来自分类Dev

在ASP.NET Core 3.0中如何获取当前经过身份验证的用户名?

来自分类Dev

仅针对特定帐户使用Google进行ASP.NET Core身份验证

来自分类Dev

在开发中禁用Asp.Net Core 3.0中的身份验证

Related 相关文章

  1. 1

    如何使用Postman使用Cookie身份验证测试ASP.NET Core Web API?

  2. 2

    静态文件 - asp.net web api core 2.1 身份验证方案承载

  3. 3

    Web 应用程序和 API AzureAD 身份验证流程 ASP.NET Core

  4. 4

    使用 ASP.NET Core Web API 的 Facebook JWT 身份验证

  5. 5

    响应 JWT 错误的身份验证 Asp.Net Core Web Api

  6. 6

    使用ASP.Net MVC / Web API进行PayPal结帐-令牌身份验证问题

  7. 7

    ASP.NET Core中的承载令牌身份验证

  8. 8

    ASP.NET Core中的基本身份验证

  9. 9

    ASP.Net Core SAML身份验证

  10. 10

    什么是ASP.NET Core的Microsoft身份验证方案?

  11. 11

    ASP.Net身份和Google身份验证问题

  12. 12

    .NET Core API中的Windows身份验证自动登录

  13. 13

    .Net Core Web API的Auth0身份验证

  14. 14

    使用ASP.net API的承载令牌身份验证

  15. 15

    ASP.NET 5中的Web API身份验证

  16. 16

    当使用ASP.NET Core Web API中没有身份的cookie身份验证时,如何在登录时刷新CSRF令牌

  17. 17

    AngularJS + ASP.NET Web API + ASP.NET MVC身份验证

  18. 18

    如何使用Angular个人用户帐户身份验证自定义ASP.NET Core Web应用程序的登录页面?

  19. 19

    我的ASP.NET Core App Service Web API如何同时支持AAD承载令牌和客户端证书身份验证?

  20. 20

    ASP。带有Cookie身份验证的Net Core 2.2:未经API专用控制器授权时,如何避免页面重定向

  21. 21

    在Linux上的ASP.NET Core MVC项目中进行身份验证后,运行项目时出现问题

  22. 22

    如何从 Angular 2 访问 Asp.net Core Api

  23. 23

    返回时,ASP .NET Core Cookie身份验证过期从时间戳更改为“会话”

  24. 24

    在ASP.NET Core中使用Authorize属性和自定义Cookie身份验证

  25. 25

    在Asp.net core / 5中使用策略库进行令牌身份验证

  26. 26

    如何在ASP.NET Core 1.0中配置身份验证

  27. 27

    在ASP.NET Core 3.0中如何获取当前经过身份验证的用户名?

  28. 28

    仅针对特定帐户使用Google进行ASP.NET Core身份验证

  29. 29

    在开发中禁用Asp.Net Core 3.0中的身份验证

热门标签

归档