我的团队使用spring boot开发了一个REST服务。任务是构建一个登录模块。授权在后端完成。令牌在后端提供给"授权"令牌的字段。
现在我想从角度2中读取此标记。
我拥有的是:
authenticateUser(user: ILogin): Observable<Response> {
const url = `${this.baseUrl2}`
// console.log("the username after service is " + user.username + " and the password is " + user.password)
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log("the json format is " +JSON.stringify(user));
return this.http.post(url, JSON.stringify(user))
.map((response: Response) => {
let userJson = response.headers;
console.log("the token is" +userJson.token); // here I got a type error and the error is that there is no token as the field of headers.
})
.do(data => console.log('authenticateuser:' + JSON.stringify(data)))
.catch(this.handleError);
}
我正在尝试搜索Google,但我没有找到任何方法如何从标题中读取令牌。任何人都可以帮助我吗?
P.S:如果我从
修改代码,我可以读取令牌let userJson = response.headers;
到
let userJson = response.json().token
但问题是,在后端,令牌放在标题上,如果我更改我的代码如上所述,这意味着我正在寻找身体的令牌,如果我编译代码,我得到一个运行时错误。< / p>
答案 0 :(得分:1)
authenticateUser(user: ILogin): Observable<Response> {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log("the json format is " +JSON.stringify(user));
return this.http.post(url, JSON.stringify(user))
.do((data:response) => {console.log(data.headers.get('token'))}))
.map((response: Response) => <any> response.json())
.catch(this.handleError);
}