I always got "You are requesting with invalid credentials." but I need to have a public endpoint specifically designed for viewing, so that everyone can access the access token for access, and the rest of the actions with checking the token
This is part of my Api controller:
/** * @inheritdoc */ public function behaviors() { return [ 'contentNegotiator' => [ 'class' => ContentNegotiator::className(), 'formats' => [ 'application/json' => Response::FORMAT_JSON, //'application/xml' => Response::FORMAT_XML, ], ], 'verbFilter' => [ 'class' => VerbFilter::className(), 'actions' => $this->verbs(), ], 'access' => [ 'class' => AccessControl::className(), 'only' => ['view'], 'rules' => [ [ 'actions' => ['view'], 'allow' => true, 'roles' => ['?'], ], ], ], 'authenticator' => [ 'class' => CompositeAuth::className(), 'authMethods' => [ HttpBasicAuth::className(), HttpBearerAuth::className(), QueryParamAuth::className(), ], ], 'rateLimiter' => [ 'class' => RateLimiter::className(), ], ]; }
I am trying to use:
'access' => [ 'class' => AccessControl::className(), 'only' => ['view'], 'rules' => [ [ 'actions' => ['view'], 'allow' => true, 'roles' => ['?'], ], ],
],
But authenticator behavior does not allow my view action to be a public action
rest api php yii2
gsalgadotoledo
source share