Angular5 WebApi令牌授权无效

时间:2018-02-15 18:14:39

标签: angular asp.net-web-api authorization token angular5

我正在尝试为Angular5客户端和WebApi服务器应用程序实现令牌授权。我设法创建了有问题的项目的WebApi部分,当我尝试通过" POSTMAN"我得到了很好的回应: Postman request and server answer

我试图用Angular5来实现同样的目标。这是我来自angular的电话:

login(user: string, pass: string) {
    let params = new HttpParams()
        .append('grant_type', 'password')
        .append('username', user)
        .append('password', pass);
    let headers = new HttpHeaders()
        .set('Content-Type', 'application/x-www-form-urlencoded');
 return this._http.post<boolean>('auth', params, { headers: headers });
}

当我执行此操作时,我会不断收到错误请求&#34;来自服务器。Chrome response

如果有人有任何想法,我将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

感谢大卫的帮助。我尝试了你的解决方案,但在我改变我的WebAPI CORS设置之前它没有任何帮助。问题在于飞行前CORS请求。我按照本文中的说明解决了我的问题。 简而言之: 我在WebAPI上清除了有关CORS的所有设置并安装了Microsoft.Owin.Cors包。 然后我使用以下代码修改了App_Start \ Startup.Auth.cs文件中的ConfigureAuth方法: public void ConfigureAuth(IAppBuilder app){      app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);      app.UseOAuthBearerTokens(OAuthOptions); } 这解决了这个问题,即使我在问题中使用Angular中的代码也是如此。它现在工作正常。