angular - 使用 IdentityServer3 和 Angular 时没有重定向
问题描述
我目前正在使用 ASP.NET Web API 2 和 Angular 开发授权系统原型。对于授权和身份验证,我使用的是 IdentityServer3。
架构如下所示:
- 前端:角度(6)
- 客户端:ASP.NET Web API 2
- 授权服务器:ASP.NET Web API 2
- 资源服务器:ASP.NET Web API 2
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);
}
由于客户提出授权请求,这对我来说没有多大意义。
解决方案
推荐阅读
- python - 在我的 Mac 上安装 pyobjc 时出现错误
- java - 如何打印 ArrayList?- 爪哇
- node.js - 为什么我无法为 discord.js 安装“quick.db”?
- typescript - 如何以编程方式解析 Typescript 定义文件?
- laravel - 如何解决“外部文件更改同步可能很慢:当前 inotify(7) 监视限制太低。” 在 PhpStorm 中
- reactjs - 对 Firestore 中的多个集合进行查询
- angular - 父子组件之间的角度通信
- python - 垃圾收集器未删除 Python 简单循环引用
- android - 有没有办法暂停streambuilder并以编程方式启动它
- python - 如何通过 mac 使用 dtm 模型/包装器 dtm?