Php Yii2:我可以在验证器之前设置访问行为吗?
我在authenticator中有两个authMethods,在access behavior中有一个ip规则 我想在验证程序之前验证访问ip规则行为 但验证者的验证总是在访问之前进行 如何更改验证顺序? 如果你不能处理这个问题 你能投票让更多的开发者看到这个问题吗Php Yii2:我可以在验证器之前设置访问行为吗?,php,yii2,behavior,Php,Yii2,Behavior,我在authenticator中有两个authMethods,在access behavior中有一个ip规则 我想在验证程序之前验证访问ip规则行为 但验证者的验证总是在访问之前进行 如何更改验证顺序? 如果你不能处理这个问题 你能投票让更多的开发者看到这个问题吗 谢谢 我找到了一种新方法 bootstrap.php protected $allowActions = ['login']; /** * @inheritdoc */ public function behaviors()
谢谢 我找到了一种新方法 bootstrap.php
protected $allowActions = ['login'];
/**
* @inheritdoc
*/
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['access'] = [
'class' => AccessControl::className(),
'rules' => [
[
'roles' => ['@'],
'ips' => ['192.168.1.222'],
'allow' => true
]
],
];
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'optional' => ['*'],
'authMethods' => [
[
'class' => AutoLoginAuth::className()
],
[
'class' => JwtAuth::className(),
'key' => '89794c5c8f80bdd4916b4b8b7f9a044a'
]
],
];
return $behaviors;
}
重构\rest\Controller.php
Yii::$container->set('yii\rest\Controller', 'refactoring\rest\Controller');
代码如上所述
注入一个新的覆盖类,只需在验证器之前设置访问权限
总结如下:
首先。
在这个应用程序中,我每次在authenticator之前都会得到访问验证。这个解决方案适合我的需要
秒。
如果要使用此方法,请确认是否使用此方法
第三名。
AccessControl进行了身份验证。这是在访问前设置验证器。因此,这种方法并不适合所有人。我将在我的反射类中进行更多的验证器验证。我找到了一种新的方法来进行验证 bootstrap.php
protected $allowActions = ['login'];
/**
* @inheritdoc
*/
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['access'] = [
'class' => AccessControl::className(),
'rules' => [
[
'roles' => ['@'],
'ips' => ['192.168.1.222'],
'allow' => true
]
],
];
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'optional' => ['*'],
'authMethods' => [
[
'class' => AutoLoginAuth::className()
],
[
'class' => JwtAuth::className(),
'key' => '89794c5c8f80bdd4916b4b8b7f9a044a'
]
],
];
return $behaviors;
}
重构\rest\Controller.php
Yii::$container->set('yii\rest\Controller', 'refactoring\rest\Controller');
代码如上所述
注入一个新的覆盖类,只需在验证器之前设置访问权限
总结如下:
首先。
在这个应用程序中,我每次在authenticator之前都会得到访问验证。这个解决方案适合我的需要
秒。
如果要使用此方法,请确认是否使用此方法
第三名。
AccessControl进行了身份验证。这是在访问前设置验证器。因此,这种方法并不适合所有人。我将在我的反射类中进行更多的验证器验证。我认为这是无法实现的,虽然验证器用于身份验证,但访问行为用于授权。好的,非常感谢。@Isitar为什么不将其定义为复合身份验证中的另一个验证器类?@mmta41。复合身份验证类必须实现AuthInterface.com,但我想使用AccessControl。访问控制不需要实现它。它们是两种完全不同的验证方法。我认为这是不可能实现的,因为authenticator用于验证,而访问行为用于授权。好的,非常感谢。@Isitar为什么不将其定义为复合验证中的另一个authenticator类?@mmta41。复合身份验证类必须实现AuthInterface.com,但我想使用AccessControl。访问控制不需要实现它。它们是两种完全不同的验证方法。