我有一个用于API的sailsjs后端,我想使用Angular4作为我的前端。我想知道,我如何处理Angular上的会话?我尝试阅读文档但无法提出任何建议。
具体来说,我需要能够处理登录,注销,CSRF保护等。是否可以在Sails中使用Angular4,因为Sails内置了所有内容?
答案 0 :(得分:1)
由于您想在Angular4中使用sails,您可能需要在index.html中将sails.io.js添加为<script src="/assets/sails.io/sails.io.js"></script>
,将sails.io.js保存在assets / sails.io /文件夹中,然后导入SailsModule并在app.module.ts中注册sails模块。另外添加
imports:[SailsModule.forRoot()]
您可能需要在构造函数中注入SailsService,而ngOnInit()调用SailsService的connect()方法。然后,您可以使用request(options):Observable
SailsService方法获取请求(检查http://sailsjs.com/documentation/reference/web-sockets/socket-client/io-socket-request并检查http://sailsjs.com/documentation/concepts/sessions),并在req.session
的帮助下获取会话值和属性。
答案 1 :(得分:1)
是, 您可以通过会话服务存储会话详细信息来管理会话。
最佳做法是使用google firebase auth功能管理所有会话,登录和注销。
易于实施...... 从谷歌免费... 由谷歌维护....
答案 2 :(得分:0)
目前,我正在开发一个angular4应用程序,其后端API是用PHP编写的,我只是从我的角度前端点击它们并获取数据,现在为了维护会话,我只是使用SessionStorage,有时是javascript的LocalStorage属性,允许我们在Web浏览器中保存键/值对。
ex: sessionStorage.setItem(&#34; keyname&#34;,&#34; value&#34;); //设置
var myvar = sessionStorage.getItem(&#34; keyname&#34;); //获取
答案 3 :(得分:0)
您有两种选择
<强> 1。 window.SessionStorage 2.角度服务
1.在您的情况下,您可以使用 SessionStroage 因此,每当用户登录时,只需在sessionStroage中设置数据
sessionStorage.setItem('userData', userObj);
并退出
sessionStroage.clear();
2。第二个选项是将您的数据放在 globalService 中。因此,此服务将包含应用内数据,一旦用户注销,只需清除服务数据。像这样: -
@Injectable()
export class GlobalService {
login(){
//initialize data here....
}
logout(){
//remove your data....
}
}
注意:如果关闭浏览器标签,则此数据将会丢失。如果要恢复此数据,请将其放在window.localStorage
中