[英]How can I get access to user identity after callback in Yii2
在我的控制器中,我有以下行為函數:
public function behaviors()
{
return [
'verbs' => [
'class' => \yii\filters\VerbFilter::className(),
'actions' => [
'verifym' => ['OPTIONS','POST','GET']
]
],
'access' => [
'class' => \yii\filters\AccessControl::className(),
'rules' => [
[
'allow' => true,
'actions' => [
'index', 'payment', 'result', 'verify',
'paymentvalidation'
],
'roles' => [ 'user' ]
],
[
'allow' => true,
'actions' => ['verifym'],
'roles' => ['*']
]
],
'denyCallback' => function ($rule, $action) {
$this->redirect([ '/' ]);
return null;
}
]
];
}
當來自外部引用者調用verifym
操作時,它不會觸發,並且denyCallBack
觸發。 並且用戶身份為空。
為什么denyCallBack
被觸發,我的訪問規則需要為此做哪些更改?
為什么用戶身份為空以及如何在回調過程中訪問該身份?
為什么從其他不同的域回調后,用戶身份和會話為空,並且刷新后取值?
誰能幫我?
如果你想為所有用戶觸發,你必須像這樣設置它(所有經過身份驗證的用戶):
[
'allow' => true,
'actions' => ['verifym'],
'roles' => ['@']
]
您可以查看文檔和示例 - https://www.yiiframework.com/doc/api/2.0/yii-filters-accesscontrol
似乎在從其他特定域回調我的 url 后,它在請求中阻止了它們的標頭,並且 Yii 框架身份通過從請求的標頭中讀取它們來檢查一些標頭。 所以我通過發送配置它並在請求和響應之間獲取一些參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.