如何在Angular中生成服务器端会话变量?
我已经完成了对我自己的angular应用程序的一点修改。 首先,我有一个菜单导航列表,包含公共、成员、管理员访问角色。 登录后,我将角色“MEMBER”存储给用户,用户可以在其中查看公共和成员链接。 (使用Chrome)但后来我打开了如何在Angular中生成服务器端会话变量?,angular,session,session-storage,Angular,Session,Session Storage,我已经完成了对我自己的angular应用程序的一点修改。 首先,我有一个菜单导航列表,包含公共、成员、管理员访问角色。 登录后,我将角色“MEMBER”存储给用户,用户可以在其中查看公共和成员链接。 (使用Chrome)但后来我打开了 Developer Tools>Application>Storage>Session Storage 操纵“角色”变量从“成员”到“管理员”,我可以查看机密管理员链接 这不是一个编码结构问题,而是“如何以安全的方式存储会话变量”。 在此之前,我认为PHP的ses
Developer Tools>Application>Storage>Session Storage
操纵“角色”变量从“成员”到“管理员”,我可以查看机密管理员链接
这不是一个编码结构问题,而是“如何以安全的方式存储会话变量”。
在此之前,我认为PHP的session变量相当于“session Storage”,社区称session不能由用户更改
现在我了解到,有两种类型的会话,服务器端会话和客户端会话。对于一个标准的angular应用程序,什么是存储“电子邮件”、“角色”之类的交易但用户无法修改的最佳方式?
我需要它们的原因是它们可以很容易地被召唤出来
Role - Show/Hide navigation menu items
Email - to perform SQL filter, SELECT fields FROM Record WHERE email=Session.Email
谢谢您的建议。您可以将会话值作为变量存储在heap中。您可以创建一个会话服务,它将处理会话变量并将其存储在映射中 样本项目,
使用这种方法,如果用户刷新/重新加载页面,会话值将丢失,您必须在每次刷新/重新加载页面时重新设置所有会话值。用户可以修改浏览器上的所有内容。因此,在执行操作之前,您还需要验证您在服务器上选择的任何会话机制 例如,您可以使用Json Web令牌(JWT)
HttpInterceptor
,将令牌添加到请求中因此,即使您将客户端存储为用户角色,并且客户端修改了该角色,操作也不会在API端执行,这是最重要的。web浏览器具有cookie,在PHP默认情况下,cookie会从PHPSESSID cookie跟踪它 你可以在这里读到 这里呢 Chrome LocalStorage和SessionStorage是与PHP会话无关的本地HTML5功能 对于你的问题,我想你可能想得不对。您希望服务器向客户端提供此类信息,而不是相反 如果您使用的是Angular和API,那么它应该以REST方式工作,而使用PHP会话不是一个可伸缩的、也不可靠的解决方案。 如果需要验证用户详细信息,客户机应该发送一个令牌,服务器可以验证该令牌。如果您希望在客户端缓存用户详细信息,那么在登录后,API可以返回用户的详细信息,这些信息可以保存到HTML5会话存储中