wecenter学习笔记-Controller访问控制实现原理

该文是wecenter学习笔记的一部分

Controller访问控制实现原理

通过在Controller的get_access_rule来返回访问控制权限

public function get_access_rule()
{
    $rule_action['rule_type'] = 'white';

    $rule_action['actions'][] = 'index';
    $rule_action['actions'][] = 'save_comment';

    return $rule_action;
}

应用启动时会检查action是否在白名单或者黑名单中,从而引导未登陆的用户进行登陆

// 判断访问规则使用白名单还是黑名单, 默认使用黑名单
if ($access_rule)
{
    // 黑名单, 黑名单中的检查 'white' 白名单,白名单以外的检查 (默认是黑名单检查)
    if (isset($access_rule['rule_type']) AND $access_rule['rule_type'] == 'white')
    {
        if ((! $access_rule['actions']) OR (! in_array(load_class('core_uri')->action, $access_rule['actions'])))
        {
            self::login();
        }
    }
    else if (isset($access_rule['actions']) AND in_array(load_class('core_uri')->action, $access_rule['actions']))  // 非白就是黑名单
    {
        self::login();
    }

}
else
{
    self::login();
}

访问白名单中action的不需要登陆,而黑名单中的action需要登陆用户才能调用。


action路由 ←o→ Model读写分离

你可能感兴趣的:(wecenter学习笔记-Controller访问控制实现原理)