【问题标题】:session id is changing after every request每次请求后会话 id 都会发生变化
【发布时间】:2018-08-30 03:22:41
【问题描述】:

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

登录后,如果我提出任何请求,它会创建不同的会话 ID?

【问题讨论】:

  • 你的意思是PHP中的不同session_id吗?
  • 是的..我在登录后发出的每个请求中都得到不同的 PHPSESSID..我是 Angular 5 的新手。请帮助

标签: php angular session-cookies


【解决方案1】:

对于前端,如果您想从浏览器访问值并将其发送到服务器,请尝试将值存储在本地存储中,这很容易设置和获取角度。

只是你需要写的是

localStorage.setItem('yourstoragename', JSON.stringify({ token: token, name: name }));

要访问它,你可以写成

var name = JSON.parse(localStorage.getItem('yourstoragename'));
console.log(name);

【讨论】:

  • 我没有从后端获得任何令牌,我只获得了 json 格式的用户信息。那么,我将如何维持视野
  • 在登录时获取此 userinfo json 格式,只需在 localstorage 中添加该 json 格式,将其设置为 localStorage.setItem('userinfo',userinfo);每次您都可以访问它通过使用 getItem('userinfo');
【解决方案2】:

会话数据是由服务器端处理的,客户端(在您的情况下为 Angular)无法读取它。 客户端(例如浏览器)可以获取 session_id,并存储要保留的附加信息(非安全信息,例如您可以使用 DevTools 查看所有 cookie 的数据)。

在大多数情况下,在登录后,服务器会给你一个令牌,你可以在以后的请求中使用它,所以你必须保留这个令牌,并在下面对 PHP 服务器的请求中使用它.

参考:

https://coderwall.com/p/8wrxfw/goodbye-php-sessions-hello-json-web-tokens

【讨论】:

  • 我没有从后端获得任何令牌,我在登录时只获得了 json 格式的用户信息。那么,我将如何保持这种观点。请帮帮我
【解决方案3】:

我能够在我的 PHP 中使用 $_SESSION 来处理使用 ionic-angular-3.9.2 的用户登录。在 Angular HttpClient 请求中使用 {withCredentials: true} 是我很难找到的部分。我在对这个问题的回复中发布了详细的答案(其他解决方案也有):Why session PHP can’t be used with Ionic?

【讨论】:

    猜你喜欢
    • 2015-06-10
    • 2023-03-12
    • 2012-11-29
    • 2018-05-08
    • 2020-05-19
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多