如何按id限制yii2上的访问url视图
我基本上是一名PHP开发人员&学习Yii2。我正在开发一个基于帐户的登录系统的web应用程序。就像我在PHP web应用程序中所做的那样,如果另一个用户没有经过身份验证,我希望阻止他/她访问该视图。这就像有人试图从外部访问url(任何相关url): www.example.com/permintanbarang/index.php?r=user/view&id=1 查格托 www.example.com/permintanbarang/index.php?r=user/view&id=2被另一个用户访问 此时,此人应重定向至登录页面或通知NotFound 404,因为此人无权直接访问基于帐户的页面如何按id限制yii2上的访问url视图,yii2,Yii2,我基本上是一名PHP开发人员&学习Yii2。我正在开发一个基于帐户的登录系统的web应用程序。就像我在PHP web应用程序中所做的那样,如果另一个用户没有经过身份验证,我希望阻止他/她访问该视图。这就像有人试图从外部访问url(任何相关url): www.example.com/permintanbarang/index.php?r=user/view&id=1 查格托 www.example.com/permintanbarang/index.php?r=user/view&id=2被另一个
在MVC框架中实现这一点的指导是什么?实现这一点的方法是使用过滤器进行访问控制,这是一种控制访问并避免来宾用户(未经验证)访问的简单方法
<?php
namespace yourapp\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use common\models\LoginForm;
use yii\filters\VerbFilter;
/**
* Site controller
*/
class SiteController extends Controller
{
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'actions' => ['logout', 'index'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
如何隐藏内部id(2)以避免在url中公开XCRZXY您应该寻找漂亮的Url,干净的Url,使用此技术您可以配置Url方面(链接),但很抱歉,我不是这方面的专家this@andrimukti为什么你从我的答案中删除了accetped答案?我希望不是因为我的评论。对不起,我的手滑倒了@scaisEdge:(没问题。我已经想到了。非常感谢
if (!Yii::$app->user->isGuest) { // if the user is authenticated (not guest)
if ( Yii::$app->User->can('admin') ){ // if the role is admin
.....
you app code