我尝试将所有此框架(从标题)一起设置。到目前为止,我设置了IdentitySever3,并设法在Angular 2应用程序中的登录按钮上获取登录屏幕。
成功登录后,我从身份验证服务器接收令牌,现在我想从ASP.NET WebAPI(.NET 4.6.2)询问一些数据。
,我有一个问题。我应该如何配置此服务器应用程序,它能够从Angular应用程序中理解从发送令牌的数据。大多数教程描述了.NET核心。任何人都可以向我展示一些例子,或者说我缺少什么。
您正在问一个非常普遍的问题,但是以下指示可能会有所帮助:
看看https://github.com/indistityserver/indistityserver3.smples您应该写正常的.NET WebAPI,并且需要两个更改: 1.像其中一个示例一样,在服务器上实现"启动"类)。 2.在每个控制器/Web上添加[身份验证]属性 您想要的方法。
和在Angular应用程序上(示例来自Angular1,但应清楚),您需要在每个请求上发送令牌int inter授权标头:
您在模块声明之后放置的代码
.config(($httpProvider: ng.IHttpProvider) => {
$httpProvider.interceptors.push("authInterceptorService");
})
,您使功能
export function authInterceptorService($q, $rootScope, $location) {
return {
request,
responseError
};
function request(config) {
config.headers = config.headers || {};
if (!_.startsWith(config.url, **URLtoYourApi**)) {
return config;
}
config.headers.authorization = "Bearer " + **access token**;
return config;
}
function responseError(rejection) {
if (rejection.status === 401) {
// do some rejection logic
$location.path("/");
}
return $q.reject(rejection);
}
}
以这种方式,您将发送令牌=> 访问令牌(可以存储在本地存储中)。显然,标记 ..... 表示您需要用某些东西替换:)