Ho sempre ricevuto "Stai richiedendo una credenziale non valida". ma ho bisogno di avere un endpoint pubblica specificamente azione "vista" che tutti possono accedere whitout inviare token di accesso e mantenere le altre azioni con la convalida del tokenYii2: Posso applicare il comportamento dell'autenticatore solo ad alcune azioni?
Questo fa parte del mio regolatore Api:
/**
* @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(),
],
];
}
provo utilizzando:
'access' => [
'class' => AccessControl::className(),
'only' => ['view'],
'rules' => [
[
'actions' => ['view'],
'allow' => true,
'roles' => ['?'],
],
],
],
ma il comportamento autenticatore non permettere che il mio punto di vista l'azione è un'azione pubblica