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

PHP 如何多个网站后台只要登录一次

  •  2
     
  •   v2016 · 2018-12-21 21:52:32 +08:00 · 5429 次点击
    这是一个创建于 2191 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我搭建了一个 Wordpress 和一个 typecho 博客 如何单独写一个登录页面出来,登录后访问这两个网站我都是已登录状态 如果有大神有想法的话,那能否增加点难度,如果不在同一服务器如何实现。

    18 条回复    2019-01-10 17:17:36 +08:00
    AngryPanda
        1
    AngryPanda  
       2018-12-21 21:57:05 +08:00 via Android   ❤️ 1
    sso
    sker101
        2
    sker101  
       2018-12-21 21:58:30 +08:00 via iPhone
    登录同时保持两份 cookie 就是调用两边的登录功能 当然登出的时候也要同时注销两边的 cookie
    再或者就是重写登录 cookie 两边共用自己写的登录状态
    hlwjia
        3
    hlwjia  
       2018-12-21 21:59:14 +08:00   ❤️ 1
    可以是可以实现,但是 wordpress 和 typecho 的改动我就不清楚有多困难了,反正自己写的服务是完全可以的。

    核心就是你有个 central 登录服务,具体的流程好复杂,让其他大神写吧
    v2016
        4
    v2016  
    OP
       2018-12-21 22:00:02 +08:00
    @sker101 可以在单独页面写入一个新的 cookie 然后把 wp 和 tp 的 cookie 名称都改为新 cookie 的名称吗
    qiayue
        5
    qiayue  
       2018-12-21 22:03:35 +08:00 via Android   ❤️ 1
    登录状态,无非是浏览器发送 cookie,后端查找有没有 session,有则是登录状态。
    你写一个单独页面,登录后跳转到一个中间页,这个页面内嵌两个 iframe,分别嵌入 wp 和 typecho 的 url。
    然后在 wp 和 typecho 的 url 里写 session 和 cookie 就好了。
    aimerforreimu
        6
    aimerforreimu  
       2018-12-21 22:03:41 +08:00 via Android
    jwt 可以实现,或者 session 共享
    aimerforreimu
        7
    aimerforreimu  
       2018-12-21 22:04:09 +08:00 via Android
    @aimerforreimu 我记得 wp 有个 jwt 的插件
    v2016
        8
    v2016  
    OP
       2018-12-21 22:10:56 +08:00
    @qiayue 是在嵌入 wp 和 tp 的页面写入 session 和 cookie 就好了吗?
    onepix
        9
    onepix  
       2018-12-21 22:12:24 +08:00
    jwt
    abux1024
        10
    abux1024  
       2018-12-21 22:17:01 +08:00
    一楼 sso
    qiayue
        11
    qiayue  
       2018-12-21 22:19:54 +08:00 via Android
    @v2016 我说的其实就是一种简单 sso 实现,linode 就是这么做的,每次登录后有一个简短的空白页就是在写
    sker101
        12
    sker101  
       2018-12-21 22:20:50 +08:00
    @v2016 可以 tp 不清楚 wp 支持在不改源码的情况下重写登录函数
    当然 这些就看你能接受多少工作量 jwt 也是 除非 tp 和 wp 都有开箱即用的插件 不然都得自己写
    zzfly256
        13
    zzfly256  
       2018-12-21 23:19:41 +08:00
    楼上已经有人给出了方案,SSO 单点登录。

    因为 wordpress 和 typecho 都有自己一套用户系统,共享 session 可能比较麻烦,不过可以试试 UCenter 巧解。

    UCenter 来源于 Discuz,可以单独安装并作为一个 CAS 系统,是大约 5 年前比较流行的方案。只需要简单配合上 WordPress 以及 Typecho 的插件即可。
    botian
        14
    botian  
       2018-12-21 23:25:35 +08:00
    写两个 api,调用两个 api,保存 cookie
    0myun
        15
    0myun  
       2018-12-21 23:36:50 +08:00
    接 ucenter 吧
    这俩貌似都有人做过适配
    eseeker
        16
    eseeker  
       2018-12-22 10:23:14 +08:00
    可以用 OAuth 2.0,我的 www.mite5.comwww.weigediao.net 就是这么搞的
    linvaux
        17
    linvaux  
       2018-12-22 15:03:55 +08:00
    做单点登录呗
    rekulas
        18
    rekulas  
       2019-01-10 17:17:36 +08:00
    php 也可以实现 session 共享的 不过似乎这样的项目不多 大多还是写 cookie
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2731 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 14:01 · PVG 22:01 · LAX 06:01 · JFK 09:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.