V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
s609926202
V2EX  ›  PHP

PHP 如何实现会话永不过期,一直保持登录状态!

  •  
  •   s609926202 · 2020-09-15 13:43:18 +08:00 · 4567 次点击
    这是一个创建于 1559 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前了解到的实现方式,如下:

    session.use_cookies=1  
    session.cookie_lifetime=999999999  
    session.gc_maxlifetime=999999999  
    

    请问还有其他方式吗?

    26 条回复    2020-10-19 15:35:17 +08:00
    tomczhen
        1
    tomczhen  
       2020-09-15 13:51:42 +08:00 via Android   ❤️ 7
    说好是一辈子就是一辈子,差一年一个月一天一个时辰都不行。
    :doge:
    dzdh
        2
    dzdh  
       2020-09-15 13:53:58 +08:00
    验证客户端证书吧 登录过程都免了
    ADANMEI
        3
    ADANMEI  
       2020-09-15 13:59:26 +08:00
    jwt 设置永不过期
    realpg
        4
    realpg  
       2020-09-15 14:00:27 +08:00
    那还搞啥 session
    一个永不过期的 cookie 认证好了
    tqrj
        5
    tqrj  
       2020-09-15 14:03:06 +08:00
    去学习吧别问了
    encro
        6
    encro  
       2020-09-15 14:04:06 +08:00
    session 使用了 cookie 的 PHP_SESSION_ID,客户端将 cookie 一清除,就退出了。
    很多浏览器都是自动清除 cookie 的。
    所以要看你的场景吧。

    你需要的可能是 api token 。比如 jwt 之类的。
    zpfhbyx
        7
    zpfhbyx  
       2020-09-15 14:41:39 +08:00
    加的 url 的 path 里面
    ben1024
        8
    ben1024  
       2020-09-15 14:56:20 +08:00
    弄个凭证获取到就放行
    stevenhawking
        9
    stevenhawking  
       2020-09-15 15:23:51 +08:00
    JWT Token, forever mode
    NjcyNzMzNDQ3
        10
    NjcyNzMzNDQ3  
       2020-09-15 17:03:47 +08:00
    写个 js,没多少秒请求下服务器,让 session 不断就行了,几行代码的事
    treblex
        11
    treblex  
       2020-09-15 17:15:57 +08:00
    用户 id 当 token
    richangfan
        12
    richangfan  
       2020-09-15 17:27:29 +08:00
    定时刷新就是了
    caijihui11
        13
    caijihui11  
       2020-09-15 17:44:39 +08:00
    持久化到库中,登录的时候存取一下
    superrichman
        14
    superrichman  
       2020-09-15 18:00:15 +08:00 via iPhone
    你这 30 年的 cookie 和永久差不多了,一般项目活不了这么久 🐶
    yuang
        15
    yuang  
       2020-09-15 18:20:44 +08:00 via Android
    做成免登录即可
    sherlockwhite
        16
    sherlockwhite  
       2020-09-16 10:07:03 +08:00
    不过期的 token
    s609926202
        17
    s609926202  
    OP
       2020-09-16 10:18:40 +08:00
    @NjcyNzMzNDQ3 这样做,如果服务器 session 过期了,不一样会处于登出状态吗?还是说把服务器 session 设置过期的时间长一些
    puzzle9
        18
    puzzle9  
       2020-09-16 11:00:27 +08:00
    直接用一个特别的登录地址当做地址把 只要从这个地址进去 保证他在浏览器开着的时候不过期就好
    bzj
        19
    bzj  
       2020-09-16 11:42:46 +08:00
    @yuang 免登录跟一次登录终身有效还是有区别的
    hushao
        20
    hushao  
       2020-09-16 13:15:42 +08:00 via iPhone
    服务端存放是否已登陆啊,密码验证后数据库设为已登陆、除非用户登出。
    NjcyNzMzNDQ3
        21
    NjcyNzMzNDQ3  
       2020-09-16 14:09:50 +08:00
    @s609926202
    定时访问你存 session 的服务的 api,每次访问就刷新过期时间了。

    服务器 session 是在长时间没有访问才会触发回收机制。

    有些我不想推出登录的网站我都是写个油猴脚本就完事了。

    window.setInterval(function(){
    document.querySelector("#s_menu > a.w_mess").click();
    },60000);
    lichengzhang2005
        22
    lichengzhang2005  
       2020-09-16 14:21:00 +08:00
    不明白什么系统需要所谓永久登录,5 年你都删库跑路啦,干毛线啊
    gz911122
        23
    gz911122  
       2020-09-16 15:03:18 +08:00
    标题不是问句吗?
    为啥结尾是叹号.... 感觉楼主很激动的样子
    s609926202
        24
    s609926202  
    OP
       2020-09-16 15:43:04 +08:00
    @gz911122

    问句 vs 感叹句,问句更有激动的意思,比如马某某,咆哮着问你???
    gz911122
        25
    gz911122  
       2020-09-16 15:49:22 +08:00
    @s609926202 说的好像也有点道理....
    但是单个问号没有这种效果, 单个叹号的强调感还是挺明显的
    yangqingrong
        26
    yangqingrong  
       2020-10-19 15:35:17 +08:00 via Android
    生成一个 token,保存到 localStorage
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2614 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:54 · PVG 18:54 · LAX 02:54 · JFK 05:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.