Angular4会话处理

时间:2017-07-25 17:23:30

标签: angular

我有一个用于API的sailsjs后端,我想使用Angular4作为我的前端。我想知道,我如何处理Angular上的会话?我尝试阅读文档但无法提出任何建议。

具体来说,我需要能够处理登录,注销,CSRF保护等。是否可以在Sails中使用Angular4,因为Sails内置了所有内容?

4 个答案:

答案 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()]

您可能需要在构造函数中注入SailsS​​ervice,而ngOnInit()调用SailsS​​ervice的connect()方法。然后,您可以使用request(options):Observable SailsS​​ervice方法获取请求(检查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