簡體   English   中英

具有角度的Jwt授權.NET Core 2.0始終返回未授權(HTTP 401)

[英]Jwt Authorization .NET Core 2.0 with angular always return Unauthorized (HTTP 401)

我正在嘗試使用MsAdalAngular6Service來自動化Active Directory用戶,該服務是Azure Active Directory身份驗證庫 ,它使用jwt bearer token對客戶端的用戶進行身份驗證。

我的角度代碼看起來像

constructor(private adalSvc: MsAdalAngular6Service) {
    var token = this.adalSvc.acquireToken('graphApiUri').subscribe((token) => {
      localStorage.setItem('token', token);
    });
  }
  GetUser() {
     let httpOptions = {
      headers: new HttpHeaders({
       'Authorization': 'Bearer ' + localStorage.getItem('token'),

      })
    }
    var token = localStorage.getItem('token');
    return this._http.get(this.myAppUrl + 'api/Member/getuser', httpOptions)
      .map((res: Response) => res.json())
  } 
  }

這里我使用獲取令牌來驗證用戶,我的startup.cs文件代碼如下所示。

services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(options =>
            {
                options.Authority = "https://login.microsoftonline.com/6fa7661f-b743-4046-b913-06c1c48eb54e";
                 //options.Audience = "https://graph.microsoft.com";
                options.TokenValidationParameters.ValidateLifetime = true;
                options.TokenValidationParameters.ClockSkew = TimeSpan.Zero;
            });

我的控制器動作如下。

    [Authorize]
    [HttpGet]
    [Route("getuser")]
    public async Task<User> GetUserInfoAsync()
    {
        var token = Request.Headers["Authorization"].ToString();
    }

但每當我通過角度調用此動作時,它總是返回未經過處理的401錯誤。

獲取令牌總是返回UnAutherize 401,但是當我通過Access令牌時,它沒有顯示401,但我只需要傳遞獲取令牌。 無法弄清楚哪里出錯了。

確保您的控制器中有AuthenticationSchemes,如下所示

[Authorize(AuthenticationSchemes = "Bearer")]
[Route("api/[controller]/")]
public class AssetController : Controller

還要確保在此行中有令牌

var token = localStorage.getItem('token');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM