v2016
V2EX  ›  PHP

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

  •  2
     
  •   v2016 · Dec 21, 2018 · 6254 views
    This topic created in 2728 days ago, the information mentioned may be changed or developed.

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

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

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

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

    UCenter 来源于 Discuz,可以单独安装并作为一个 CAS 系统,是大约 5 年前比较流行的方案。只需要简单配合上 WordPress 以及 Typecho 的插件即可。
    botian
        14
    botian  
       Dec 21, 2018
    写两个 api,调用两个 api,保存 cookie
    0myun
        15
    0myun  
       Dec 21, 2018
    接 ucenter 吧
    这俩貌似都有人做过适配
    eseeker
        16
    eseeker  
       Dec 22, 2018
    可以用 OAuth 2.0,我的 www.mite5.comwww.weigediao.net 就是这么搞的
    linvaux
        17
    linvaux  
       Dec 22, 2018
    做单点登录呗
    rekulas
        18
    rekulas  
       Jan 10, 2019
    php 也可以实现 session 共享的 不过似乎这样的项目不多 大多还是写 cookie
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1355 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 17:01 · PVG 01:01 · LAX 10:01 · JFK 13:01
    ♥ Do have faith in what you're doing.