php - 如何在常规 PHP/HTML 页面和 Angular 页面之间共享 PHP session ?

标签 php angular

我主要使用 HTML 和 PHP 编写了一个 Web 应用程序。

网站的所有(需要登录)页面均使用 PHP session 进行控制,除了一个 SPA Angular 页面。

用户使用 HTML 和 PHP 登录,并创建 PHP session 来验证用户身份。

当用户点击进入Angular页面时,我不想要求用户再次登录,

有没有一种方法可以安全地与 Angular 页面共享现有的 PHP session ?

感谢您的帮助。

最佳答案

我不确定是否可以“共享” session ,即使可以,也可能不推荐或不作为标准做法。通常,您需要让前端调用后端 API。因此,如果用户访问您的 Angular 页面,您可以发出 API 请求,在显示登录页面之前检查用户是否已通过身份验证。

很难告诉您什么是针对您的特定应用程序的安全且最小的更改选项,无需更多详细信息,但您应该能够使用安全的服务器端 cookie,该 cookie 随来自 Angular 或 React 的每个 API 请求一起发送(使用 axios 您可以使用 withCredentials)到 API(它不必是 API,它可以是设置为处理请求的 PHP 页面),其中包含 JWT(对于您的用例来说可能过于复杂),可以验证用户是否已通过身份验证。 JWT 数据可以从前端看到,因此不要将其用作检查隐藏或 secret 数据的安全方法,但它是验证已验证数据的一种方法。

尽管它很方便,但我还是会避免传递密码或密码哈希值,尤其是在前端可访问的 cookie 中(无论如何,这通常是不受欢迎的)。

关于php - 如何在常规 PHP/HTML 页面和 Angular 页面之间共享 PHP session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56818589/

相关文章:

angular - Rowspan 在 Angular 10 中无法与 ngFor 正常工作

javascript - AngularJs $http 在页面加载时发布

php - Paypal 中的标准工作流程与 PHP codeigniter 集成

php - 对数字函数行数的 fatal error 调用

php - UNION SELECT MySQL 查询,用 PHP 做数学运算和显示

javascript - 在 md-dialog 中选择事件的 md-tab md-tab-group

checkbox - Angular2,如果没有选中复选框则禁用按钮

php - 无法使用本地计算机作为服务器在客户端运行桌面应用程序

syntax - Angular 2 类前面的省略号(在本例中为集合)

Angular (2+): Mutating an input param in child component