为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以使用 PHP 来保持登录凭据的活动?

是否可以使用 PHP 来保持登录凭据的活动?

PHP
慕少森 2023-07-01 17:30:30
如果有人登录 Google、Facebook、Amazon 或 Stack Overflow,则该人的登录凭据将一直有效,直到注销为止。我想问一下,如何使用 PHP 或 Javascript 将用户的登录凭据保留在他/她的计算机中,直到注销为止?可以使用 PHP 或 Javascript,如果不能的话我该怎么办或者我应该使用什么技术。我是否应该使用Cookie函数并设置过期时间,直到我的域使用mktime函数过期为止。已编辑请提及您的答案的源代码。
查看完整描述

6 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您可以使用 PHP 增加会话超时。如果您希望会话在浏览器关闭之前保持活动状态,您可以简单地将 session.gc_maxlifetime 设置为 0:

ini_set('session.gc_maxlifetime', 0);

如果您想要无限会话,可以将 session.gc_maxlifetime 设置为:

 ini_set('session.gc_maxlifetime', 60 * 60 * 24 * 365); # session expires after 1 year

否则,您可以在启动会话之前将 session.gc_probability 设置为 0。这将使垃圾收集器删除会话数据的机会为 0%。您必须在共享同一会话存储位置的所有应用程序中执行此操作。

 ini_set('session.gc_probability', 0);

您还可以从 php.ini 文件更改这些值

查看完整回答
反对 回复 2023-07-01
?
慕村9548890

TA贡献1884条经验 获得超4个赞

  • Cookie 是网站识别用户的方式,以便即使在浏览器重新启动时也能保持会话活动。

  • Cookie 不应用于存储登录凭据。只有服务器生成的唯一会话标识符才能在设备稍后访问网站时识别该设备。

  • Cookie 必须在未来的某个时间过期,但您可以将其过期日期设置为几年后。

  • Cookie 可以使用JavaScriptdocument.cookie从客户端设置,也可以使用 PHP 在服务器端(对于会话处理更实用)通过Set-Cookie HTTP 响应标头进行设置,这可以使用PHP 标头函数手动完成,或者更好地使用setcookie 函数或者更容易让 php 使用其内置会话函数为您处理整个会话处理过程。


查看完整回答
反对 回复 2023-07-01
?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

您正在寻找的称为PHP Session。您可以使用 PHP 会话为用户创建“活动”页面,以获得自定义用户体验。会话比 cookie 相对安全,因为它们存储在服务器计算机中,但正如 @Anirudhsanthosh 提到的,您可以使用两者以获得更好的体验。

这是有关如何使用PHP Session 创建登录页面的教程。

基本思想是,当用户输入用户名和密码时:

  1. 检查该用户名和密码是否与您存储在数据库中的内容相同。

  2. 如果用户名和密码匹配,您可以将给定的用户信息存储在会话变量中,如下所示$_SESSION['user'] = $username;

  3. 在必须授予仅登录用户访问权限的每个页面上,检查用户是否以以下身份登录:

    if(!isset($_SESSION['user'])){
    // REDIRECT TO LOGIN PAGE
    }

PS:不要忘记在每个页面的开头启动会话,因为session_start();



查看完整回答
反对 回复 2023-07-01
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

这称为 OAauth 身份验证。每家提供 OAuth 身份验证的公司(如 Google、Facebook、Amazon、Github 等)都会为您提供有关如何正确执行此操作的文档说明。

无论如何,您必须拥有自己的身份验证逻辑,该逻辑将服务于所描述的任何选项,并且您必须一一实现它们中的每一个。对用户进行身份验证后,您必须在任何应用程序中照常保留创建的会话。


查看完整回答
反对 回复 2023-07-01
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

您可以为此使用 php $_SESSION 或 COOKIE

$_SESSION['USER'] = ['current user details'];

您可以将 cookie 和 session 结合起来,作为初学者首先使用 season 以获得良好的体验

您不能将 cookie 的到期日期设置为超过 2038 年,否则它将结束


查看完整回答
反对 回复 2023-07-01
?
慕仙森

TA贡献1827条经验 获得超7个赞

事实上,它是 Open Id Connect,允许用户按照您描述的方式进行连接。

Oauth2 是几年前开发的。它是一种授权协议,这意味着它基本上用于管理数据访问。它有多个工作流程,具体取决于您想要做什么。

OpenId Connect 它是一个覆盖层,通过 Oauth2 流实现身份验证过程。事实上Oauth2和OpenId Connect是互补的。OpenId Connect 的 90% 实际上是 Oauth2。其余部分是使 Oauth2 可用于身份验证的部分

事实上,互联网上的文档使用不同的流程,这使得理解变得更加复杂

我认为我所说的实际上并不明确,而且这是一个广泛的主题。我花了很多功夫才理解它是如何工作的。


查看完整回答
反对 回复 2023-07-01
  • 6 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信