我主要使用 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/