如何根据某些条件禁用FB登录。例如,如果时间在凌晨2点到4点之间,请禁用facebook登录(只是一个例子)。我的问题不在于条件的逻辑,我当然可以应用它。但我的问题是,一旦满足条件,如何在hybridauth 中以编程方式禁用fb登录
提前感谢
Ps。你可能想看看这里的代码:https://github.com/hybridauth/hybridauth
http://hybridauth.sourceforge.net/
从文档中我们可以看到这个条目;
enabled
可以是true
或false
;如果您不想使用特定的提供程序,请将其设置为false
如果打开hybridauth/config.php
,您将看到一个配置数组,其中包含不同身份验证方法的配置。最有趣的是,我们可以看到一个名为enabled
的密钥,我们可以对其进行操作。
直接修改值
我们可以使用三元运算符直接修改值。例如
...
"Facebook" => array (
"enabled" => (condition ? true : false), //Ternary operator modifying `enabled` value.
"keys" => array ( "id" => "", "secret" => "" ),
"trustForwarded" => false
),
....
但是,我们可以通过在加载配置后对其进行修改来实现这一点。
稍后修改该值
如果您打开examples/social_hub/login.php
,您会看到我们加载了配置文件并使用它。这里是我们可以修改enabled
密钥的地方。
配置保存在变量$config
中,因此;
if( condition ) {
$config['providers']['Facebook']['enabled'] = FALSE;
}
在您的超级简化示例中,您可以添加逻辑来动态构建配置数组,然后将其注入您的hybridauth实例中。这可以通过在标准配置数组中加载,然后根据您拥有的任何业务逻辑规则进行操作来实现。
您总是可以扩展Hybridauth,但对于您提供的相对简单的示例来说,这似乎有些过头了。