hook - WHMCS 8 - 在所有页面上强制登录,但登录和密码选项
问题描述
我试图限制来自门户的客户端访问(即支持、购物车等),除非他们已经登录。所以基本上除了登录名和密码/2xauth 选项之外的所有内容。我有这段代码,但它实际上阻止了除登录之外的所有内容。因此客户端无法重置密码。可以更新此代码段以正常工作吗?有人可以帮我解决这个问题吗?
<?php
if (!defined("WHMCS"))
die("This file cannot be accessed directly");
function hook_ForceEveryoneToLogin($vars) {
$clientID = intval($_SESSION['uid']);
$adminID = intval($_SESSION['adminid']);
// Create the link for the incoming URL.
$link = "https";
$link .= "://";
$link .= $_SERVER['HTTP_HOST'];
$link .= $_SERVER['REQUEST_URI'];
if ($adminID===0){
if (!in_array($vars['filename'], array("index")) && $clientID===0){
// Check if the link is accurate.
if($link != "https://mydomain/index.php?rp=/login"){
header("Location: login.php");
exit;
}
}
else if($clientID===0){
// Check if the link is accurate.
if($link != "https://mydomain/index.php?rp=/login"){
header("Location: login.php");
exit;
}
}
}
}
add_hook("ClientAreaPage", 1, "hook_ForceEveryoneToLogin");
?>
解决方案
推荐阅读
- ruby-on-rails - Rails 导航辅助方法
- php - Composer:安装包时允许的内存大小错误
- azure-devops - Azure DevOps Artifacts 列出来自上游源的所有包
- multithreading - 大数据项生产者-消费者问题的最佳内存和时间解决方案
- javascript - 有非模态对话框时如何专注于主页输入元素?
- javascript - 虚拟 DOM 如何高效的最小示例
- firebase - 当我从 firebase 导入 JSon 时,是否可以为每个元素生成密钥
- apache-kafka - debezium 无法使用带有默认插件 pgoutput 的 postgres 11 访问文件“decoderbufs”
- android - 当 MainAcitivty 调用 onDestroy() 时如何调用所有活动 onDestroy()?
- javascript - JS/JSON 每小时为数据创建一个新行