gpt4 book ai didi

angular - 如何在http请求 Angular 添加 token

转载 作者:行者123 更新时间:2023-12-05 08:30:37 25 4
gpt4 key购买 nike

我正在尝试使用 angluar 和 spring boot 进行登录。我使用 JWT 身份验证,在成功验证后我得到了 token 作为响应。提交登录后,我将重定向到另一个网址,但我需要将不记名 token 添加到网址中,否则它会返回匿名用户。我是 Angular 的新手,请告诉我如何将 token 添加到请求中。

登录服务

loginUser(data: Student): Observable<any> {
const url = '/login';
let headers = new HttpHeaders();
headers = headers.set('Content-Type', 'application/text; charset=utf-8');
return this.httpClient.post(this.serverUrl + url, data, {responseType: 'text' as 'json'});
}

getuserInfo(): Observable<any> {
const url = '/userinfo';
return this.httpClient.get(this.serverUrl + url);
}

登录表单提交

登录表单

submitForm(submission: any): void {
console.log(submission);
if (submission && submission.submit) {
delete submission.submit;
}
this.loginService.loginUser(submission)
.subscribe(result => {
console.log(result);
this.userinfo();
}, err => {
alert(err);
});
}

userinfo() {
this.loginService.getuserInfo()
.subscribe(result => {
console.log(result);
}, err => {
alert(err);
});
}

Response

如何在用户信息中添加此 token ,请帮助我。

最佳答案

将您的 token 存储在 localStorage 中:

localStorage.setItem('token', 'yourToken');

并使用拦截器在请求中设置 token :

@Injectable({
providedIn: 'root'
})
export class UserEmulationInterceptor implements HttpInterceptor {

private readonly token: string;

constructor() {
this.token = localStorage.getItem('your_sso_token');
}

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (this.token) {
const modReq = req.clone({
setHeaders: {
'your_sso_token': this.token
}
});
return next.handle(modReq);
}
return next.handle(req);
}
}

关于angular - 如何在http请求 Angular 添加 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63167450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com