Yii2restful authenticator认证通过后,AccessControl还可 [ 2.0 版本 ]
他是继承 `
yii\rest\Controller;
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'authMethods' => [
HttpBasicAuth::className(),
HttpBearerAuth::className(),
QueryParamAuth::className(),
],
];
$behaviors['access'] = [
'class' => \yii\filters\AccessControl::className(),
'only' => $this->actions,
'except' => $this->except,
'rules' => [
[
'allow' => false,
'actions' => empty($this->mustlogin) ? [] : $this->mustlogin,
'roles' => ['?'], // guest
],
[
'allow' => true,
'actions' => empty($this->mustlogin) ? [] : $this->mustlogin,
'roles' => ['@'],
],
],
];
$behaviors['verbs']=[
'class' => \yii\filters\VerbFilter::className(),
'actions' => $this->verbs,
];
return $behaviors;
}
ok 补充于 2017-09-28 09:58
哭,我想说。上面的那个方法是继承 yii\rest\Controller; 一旦authenticator开启认证,所有的方法都会需要传递accessToken正确的值 才能访问 所以我想使用behaviors的access 来过滤,但是没有效果,文档说用checkAccess重写activeController的checkAccess放发,但是我在父级没看到checkAccess,测是了checkAccess也不能过滤,说明checkAccess不可以重写
ok 补充于 2017-09-30 11:30
已经解决
'optional' => [
'index',
],
最佳答案
-
你想表达什么,兄弟,喝口水,慢慢说
共 2 条回复文章来源 http://www.dannisi.xin.
如果你遇到了这样的问题: Your request was made with invalid credentials. 你可以在***\vendor\yiisoft\yii2\filters\auth\QueryParamAuth.php 中 authenticate 打印$accessToken 如果为空的话 改成 $accessToken = $request->headers->get($this->tokenParam);
其他 0 个回答
没有找到数据。
ok
注册时间:2017-03-01
最后登录:2024-05-10
在线时长:14小时46分
最后登录:2024-05-10
在线时长:14小时46分
- 粉丝1
- 金钱50
- 威望0
- 积分190