gpt4 book ai didi

javascript - 如何在 Angular 8 中存储 jwt token 之类的数据?是否有另一种使用本地存储或 session 存储安全存储的方法?

转载 作者:行者123 更新时间:2023-12-01 16:10:39 25 4
gpt4 key购买 nike

我正在使用 JWT token 来授权从 Angular 8 网站对我的 API 的请求。但是我在哪里存储这个对用户不可见的 token ?我曾尝试使用服务,但刷新页面 token 后丢失。

最佳答案

您可以使用 cookie 来存储 token 而不是本地存储或 session 存储,但这不会使其安全。即使加密 cookie 或本地存储也不是一种万无一失的机制,因为加密的 key 要么驻留在客户端,要么从服务器传递。这使得它容易被修改。

为了实现处理 token 的安全机制,我建议您查看 at this answer

为了替代本地存储或 session 存储,您可以使用 cookie,如下所示:

你可以安装这个包https://www.npmjs.com/package/ng2-cookies

然后你可以简单地按照步骤

import { Cookie } from 'ng2-cookies/ng2-cookies';

//setter for token
Cookie.set('jwtToken', 'tokenValue');
//getter for token
let token = Cookie.get('jwtToken');
//delete token cookie
Cookie.delete('jwtToken');

或者你可以安装 NGX Cookie Service对于 Angular 4 及更高版本

安装
npm install ngx-cookie-service --save

导入并注入(inject)到您的组件中
import { CookieService } from 'ngx-cookie-service';
export class AppComponent implements OnInit {


constructor( private cookieService: CookieService, private _authService: AuthService ) { }

ngOnInit(): void {
//call your auth service to get the token, I have made a call to a dummy auth service to fetch the token
var token = _authService.GetToken();
//Set auth token cookie
this.cookieService.set( 'authToken', token );
//get auth token cookie
this.cookieValue = this.cookieService.get('authToken');
}
}

关于javascript - 如何在 Angular 8 中存储 jwt token 之类的数据?是否有另一种使用本地存储或 session 存储安全存储的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59509684/

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