gpt4 book ai didi

php - OpenID 登录机制 - 保持登录状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:09:49 27 4
gpt4 key购买 nike

我正在用 PHP 开发一个网站,我正在尝试使用 OpenID 作为登录机制。我想要类似于 StackOverflow 的行为。我的意思是,无论何时打开 stackoverflow,我都已经登录。我在 StackOverflow 上发现了两个相关问题:

OpenId + remember me / staying logged in

Sign in with Twitter, and stay signed in (PHP)

我明白我应该让用户登录,如果这是他/她第一次登录,我应该让用户登录并在他/她的系统中设置一个 cookie。但是我想知道的是我应该在 cookie 中存储什么?用户名/密码组合?这似乎是一个安全问题。另一个问题是我应该在哪里检查 cookie?我将不胜感激一个简单的教程/代码示例。谢谢。

最佳答案

这是使用 cookie 和 OpenID 的基本网络应用程序 session 管理,起初在这里没有什么区别。

不,绝对不要在 cookie 中存储用户名和密码。 Cookie 充当“承载 token ”,这意味着拥有 cookie 的人都可以进入。存储在 cookie 中的最好的东西是一个不可猜测的任意 key ,您可以使用它在应用程序的表中查找真实信息。因此,用户显示了一个“myappsession”cookie 和一个与您的域相关联的值“234871nb341adf”。然后,您的应用会在本地数据存储中查找“234871nb341adf”的值,并查看它是否与有效用户相关联。您最好也检查一下该用户在多长时间前在那里以及诸如此类的东西。如果它是一个有效 session 并且在您的时间和使用限制内,用户将自动登录。

对于来自 RP 端的额外偏执狂,您可以使用 OpenID 的 checkid_immediate 模式进行后台调用以查看用户是否仍登录到他们的 IdP。如果不是,那么您至少知道要尝试将它们发送给哪个提供商以进行重新验证,并且可以提供更好的用户体验。

如果您希望您的站点真正安全,您应该通过 HTTPS 进行所有 session 并将您的 cookie 标记为“安全”和“HTTPOnly”,这在 setcookie 函数中有记录手册页:http://php.net/manual/en/function.setcookie.php

关于php - OpenID 登录机制 - 保持登录状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com