Codeigniter / Angular2会话持久性

时间:2017-01-29 18:03:29

标签: php codeigniter session angular

所以我正在开发API第一个应用程序,后端使用codeigniter-restserver(https://github.com/chriskacerguis/codeigniter-restserver),前端使用Angular2。

我已完成后端并使用Postman测试所有端点,包括图像上传和删除端点,所有工作正常。

但是除了授权http头之外,一些端点还受到用户登录会话检查的保护。在postman会话中持续存在,所以如果我尝试将图像上传到端点,它会检​​查是否有人登录,如果没有,则返回状态代码,表明“未登录”,然后我转到登录端点登录,然后返回到图像上传端点然后它工作(在邮递员上)。

然而,从我的Angular2客户端应用程序,即使我调用登录端点,它仍然返回用户而不是状态代码中的loggen。当我然后调用图像上传端点时,就像它立即杀死会话一样,它收到来自REST服务器的响应。

我的问题是,你认为Postman与我的Angular2客户端应用程序有什么不同(我使用Angular http和observables)。

Codeigniter restserver在localhost:80和Angular2客户端App on localhost:4200在开发模式下。

由于

1 个答案:

答案 0 :(得分:0)

我不知道这是否是您问题的直接答案,但我希望它能帮助您了解您的问题以及如何继续您的项目......

我不依赖于Codeigniter的会话,因为您正在处理单页应用程序而“休息服务器”应该是无状态的。 这也意味着您不应该在Codeigniter中查找会话...

您的客户端应用程序应包含会话数据。因此,您应该使用JsonWebToken (JWS),它可以存储在客户端的本地存储或cookie中。对于每个请求,您也可以将此JWT令牌发送到服务器,在那里使用一些辅助函数(我正在使用JWT helper)对其进行解码,如果验证为真,则进行进一步操作,否则返回未授权或某些回应