首页 > 解决方案 > 使用 IdentityServer3 和 Angular 时没有重定向

问题描述

我目前正在使用 ASP.NET Web API 2 和 Angular 开发授权系统原型。对于授权和身份验证,我使用的是 IdentityServer3。

架构如下所示:

Angular 应用程序由客户端提供服务,并且对客户端进行 API 调用。我想使用混合流。因此客户端与资源服务器进行通信。

通过在地址栏中键入 URL 进行 API 调用时,如下所示:

http://localhost:12059/api/v1/orders

一切正常。浏览器将用户重定向到身份服务器,他可以在其中进行身份验证和授权。

但是,当我使用 Angular 对客户端进行相同的API 调用时,用户不会被重定向。他只是在控制台中得到一个错误:

Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>)

角度 api 调用如下所示:

getOrders(): Observable<any> {
    return this.http.get(`/api/v1/orders`);
}

C# 中的端点是这样的:

[Authorize]
[Route("")]
public async Task<IHttpActionResult> Get()
{
    var user = User as ClaimsPrincipal;
    var token = user.FindFirst("access_token").Value;
    var result = await CallApi(token);

    return Ok(result);
}

由于客户提出授权请求,这对我来说没有多大意义。

标签: angularoauth-2.0asp.net-web-api2identityserver3

解决方案


推荐阅读