我的布局
IdentityServer 项目:
- MVC 客户端(隐式工作流程)
- API 客户端(客户端凭据 工作流程)
WebApi 项目:
- 业务逻辑和数据库访问
- 仅请求“api”范围
MVC 项目:
- 请求“openid 配置文件角色 api”范围
- 请求“id_token token ”
- Angular 应用访问安全 API(当前访问 token 未添加到 header 中)
我在做什么
我的 MVC 已得到正确保护,并且 ResourceAuthorize() 按预期工作。 我目前正在制作我的 Angular 应用程序,将不记名 token 添加到我们的 API 调用中。
我的疑问
访问 MVC 时,用户会被重定向到 IdSrv,登录,然后重定向回 MVC。 此时,我的 Angular 应用程序首次加载,显然我没有或不需要用户名和密码。
访问 token 已经发出,但我不知道如何/何时将其提供给 Angular 应用程序。
我的想法
- 使用 razor 将其注入(inject)我的布局页面。
- 将 MVC 切换到授权代码工作流程,并再次访问 IdServ 请求访问 token [嗯,但是等等...如何将授权代码转换为 Angular?我想我仍然遇到同样的问题..??]
- 使 Angular 使用客户端凭据工作流程,假设如果我进入 Angular 应用程序,用户已通过身份验证[但我存在安全漏洞,对吗?]
请为我指出正确的方向。 我似乎找不到哪个示例的功能与我需要的类似。
提前致谢, 害羞。
最佳答案
最终使用 Razor 注入(inject) token 和用户数据,然后通过 window.user 使用 Angular 获取它。
<script>
window.user = @Html.JsonRaw(ViewBag.User as ClientSideIdentity);
</script>
public class ClientSideIdentity
{
public string id { get; set; }
public string username { get; set; }
public string displayName { get; set; }
public Dictionary<string, string> claims { get; set; }
public string[] roles { get; set; }
}
关于angularjs - 如何在访问 IdentityServer 的同一旅程中获取 Angular 中的访问 token - MVC、WebApi 和 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278027/