联系官方销售客服

1835022288

028-61286886

开发框架 版主:迅睿框架研发组
如何实现访问所有前端页面未登录就跳转到登录界面使用首页钩子能
类型:迅睿CMS 更新时间:2020-07-19 16:08:13 登录 钩子 前端
PHP程序里面

如何实现访问所有前端页面未登录就跳转到登录界面?

使用首页钩子cms_index能成功实现访问首页是判断是否登录跳转,,但其它页面就不行了,比如栏目页,信息内容页等等页面。


于是想用 主程序运行之后钩子 cms_init

结果页面都打不开了,重定向次数过多,

\Phpcmf\Hooks::on('cms_init', function() {
   if (!\Phpcmf\Service::C()->uid) {
       dr_redirect(dr_member_url('login/index'));
   }
   
});


如果想要所有前端页面都判断是否登录,该怎么办呢


回帖
  • #1楼    迅睿框架创始人
    2020-07-19 15:56:11
    Google Pixel 手机 0
    \Phpcmf\Hooks::on('cms_init', function() {
       if (!\Phpcmf\Service::C()->uid && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
           dr_redirect(dr_member_url('login/index'));
       }
       
    });
    加一个判断试试
  • #2楼    迅睿框架创始人
    2020-07-19 15:58:04
    Google Pixel 手机 0
    if (!\Phpcmf\Service::C()->uid && !IS_ADMIN && !in_array(\Phpcmf\Service::L('Router')->class, ['register', 'login', 'api', 'pay'])) {
           dr_redirect(dr_member_url('login/index'));
       }
    排除后台
  • 小白一枚
    #3楼    小白一枚
    2020-07-19 15:58:28
    Chrome 0
    回复迅睿框架创始人这个可以,能麻烦讲解下这个判断与之前那个有啥不同呢,
    ['register', 'login', 'api', 'pay']
    这里面几个代表啥意思
  • 左手
    #4楼    左手
    2020-07-19 16:06:37
    Chrome 0
    if (!\Phpcmf\Service::C()->uid && !IS_ADMIN) {
           dr_redirect(dr_member_url('login/index'));
       }
    试试这个
  • 小白一枚
    #5楼    小白一枚
    2020-07-19 16:08:13
    Chrome 0
    左手
    你这个也不行,,重定向次数过多。#2楼的可以