用户点击链接后显示页面yii2应用程序中无需登录
您单击管理员通过电子邮件共享的链接。单击此链接后,您应查看此页面,无需登录过程。如何做到这一点 我创建了此功能,用户可以轻松重定向到此页面,但几秒钟后,应用程序重定向并显示登录页面用户点击链接后显示页面yii2应用程序中无需登录,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,您单击管理员通过电子邮件共享的链接。单击此链接后,您应查看此页面,无需登录过程。如何做到这一点 我创建了此功能,用户可以轻松重定向到此页面,但几秒钟后,应用程序重定向并显示登录页面 public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'rules'
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['deal'],
'allow' => true,
'roles' => ['?'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'deal' => ['post'],
],
],
];
}
您可以检查操作的授权
public function actionDeal() {
if (\Yii::$app->user->isGuest && !\Yii::$app->session->has('adminshared')) {
return $this->redirect(['site/login']);
}
// To do
}
并且您可以共享指向另一个操作的链接,当用户输入此操作时,您应该在会话上设置变量
public function actionSharedFromAdmin() {
// To Do
\Yii::$app->session->set('adminshared', true);
return $this->redirect(['yourcontroller/deal']);
}
尝试仅添加参数
。像这样'only'=>['deal'],
进入访问类定义后的行为。如果您希望仅向未经身份验证的用户显示此页面。为什么将对deal
操作的请求限制为仅使用VerbFilter
的POST
方法?如果应该通过邮件链接访问,浏览器将发送GET
请求。