我通常将用户令牌保存在本地存储中。我检查本地存储中的“令牌”键作为CanActivate方法来保护某些路由。如果键在那里,我让用户登陆页面,否则我重定向到登录页面。

现在,我使用cookie来存储auth令牌。令牌在服务器登录后直接存储在cookie中(set-cookie,secure:true,httpOnly:true)。

由于httpOnly,我无法从js检查是否存储令牌,而且我也不知道如何保护我的路由。我怎样才能像以前一样完成类似的处理?无论如何,我是否应该在登录时将某些内容保存在本地存储中,然后仅检查密钥是否存在?我可以检查密钥是否以某种方式存储在cookie中吗?

最佳答案

您可以使用NPM软件包ngx-cookie-service。

npm install ngx-cookie-service


在您的app.module中

import { CookieService } from 'ngx-cookie-service';


在组件中

constructor(private cookieService: CookieService) {}
…
public ngOnInit() {
    this.cookieService.set('cookie-name','cookie value');
    let cookieValue = this.cookieService.get('cookie-name');
}


https://itnext.io/angular-8-how-to-use-cookies-14ab3f2e93fc

问候

09-25 17:40