我正在通过MEAN堆栈项目学习Angular。完整代码在这里:Angular front-end,Node.js API。
在后端,我将Passport身份验证与基于会话的默认行为结合使用,并且设置了本地,Google和Facebook策略。 Passport会将用户数据插入会话cookie中,由前端进行解析和使用以显示用户名,电子邮件地址,个人资料图片等。
所以现在在后端,我需要做的是检索cookie并将其反序列化,然后编写方法以使用所说的cookie来获取用户数据以及基本的isLoggedIn(),该方法将仅检查是否有效的cookie存在。
为此,我尝试了ngx-cookie和ngx-cookie-service,但都遇到了相同的问题:我可以创建和读取自己创建的Cookie,但“会话”和Passport创建的'session.sig'cookie对getAll方法(以及任何get('session'))仍然不可见。
authentication.service.ts内部的所有代码处理。当前,所有方法都针对基于令牌的身份验证,因此我需要对其进行更改。具体来说,这是我用来测试Cookie处理的方法:
public getCookies() {
this.cookies.set('test', 'yay');
console.log('test: ', this.cookies.check('test'));
const allCookies = this.cookies.getAll();
console.log('allCookies: ', allCookies);
return allCookies;
}
该代码的控制台输出仅显示一个cookie,即“ test”。在浏览器开发工具上,我还可以访问两个cookie,即“ session”和“ session.sig”。但是如何?
谢谢!