【发布时间】:2017-10-20 13:17:44
【问题描述】:
我已经按照这篇文章开发了一个基于令牌的认证后端服务:
http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
这一切都按预期工作,我可以使用 winforms 应用程序进行身份验证,在 c# 中使用 restsharp 检索令牌没有问题。现在我开始使用 Angular 4 开发一个 Web 前端,并正在尝试修改它:
http://jasonwatmore.com/post/2016/08/16/angular-2-jwt-authentication-example-tutorial
使用此代码从我的后端获取令牌:
login(username: string, password: string): Observable<boolean> {
let data = "grant_type=password&username=" + username + "&password=" + password;
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
//headers.append('Accept', 'application/json');
let options = new RequestOptions({headers: headers});
return this.http.post('http://localhost:61814/token', data, options)
.map((response: Response) => {
// login successful if there's a jwt token in the response
let user = response.json();
if (user && user.token) {
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify(user));
}
return user;
})
}
login() {
this.loading = true;
this.authenticationService.login(this.model.username, this.model.password)
.subscribe(
data => {
this.router.navigate([this.returnUrl]);
},
error => {
this.alertService.error(error);
this.loading = false;
});
}
但是当我在 chrome devtools 中调试时没有任何反应,网络选项卡中没有任何内容,只有 XHR 加载失败:控制台中的“POST”。
对前端开发还很陌生,并且在这方面真的很挣扎!
【问题讨论】:
-
对我来说看起来不错。如果你把 console.log 放在各种方法中,它们都被调用了吗?
-
是的,他们现在是。我重新启动了我的后端解决方案,它似乎工作。奋斗过去!谢谢