在 Yii2 中回调后如何访问用户身份

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 之后,它在请求中阻止了它们的 headers 并且 Yii 框架身份通过从请求的 headers 中读取它们来检查它们=12=]。 所以我通过发送配置它并在请求和响应之间获取一些参数。