Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 135.7MB ·虚拟内存 1372.6MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
验证用户是否有足够权限来执行某项操作的过程称为 授权 。Yii提供了一个ACF(访问控制过滤器),一种实现为 yii \ filters \ AccessControl 的授权方法。修改SiteController的behavior()函数 -
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['about', 'contact'],
'rules' => [
[
'allow' => true,
'actions' => ['about'],
'roles' => ['?'],
],
[
'allow' => true,
'actions' => ['contact', 'about'],
'roles' => ['@'],
],
],
],
];
}
在上面的代码中,ACF作为一个行为被附加。唯一的属性规定ACF只应用于关于和接触的行为。所有其他操作不受访问控制。rules属性列出访问规则。所有客人(具有“?”角色)都将被允许访问 关于该 操作。所有经过身份验证的用户(具有“@”角色)都将被允许访问联系人和操作。
如果您转到URL http:// localhost:8080 / index.php?r = site / about ,您将看到该页面,但是如果您打开URL http:// localhost:8080 / index.php?r =网站/联系人 ,您将被重定向到登录页面,因为只有经过身份验证的用户才能访问 联系人 操作。
访问规则支持许多选项 -
步骤1 - Yii提供以下方便的方法来处理密码。
public function actionAuth() {
$password = "asd%#G3";
//generates password hasg
$hash = Yii::$app->getSecurity()->generatePasswordHash($password);
var_dump($hash);
//validates password hash
if (Yii::$app->getSecurity()->validatePassword($password, $hash)) {
echo "correct password";
} else {
echo "incorrect password";
}
//generate a token
$key = Yii::$app->getSecurity()->generateRandomString();
var_dump($key);
//encrypt data with a secret key
$encryptedData = Yii::$app->getSecurity()->encryptByPassword("mydata", $key);
var_dump($encryptedData);
//decrypt data with a secret key
$data = Yii::$app->getSecurity()->decryptByPassword($encryptedData, $key);
var_dump($data);
//hash data with a secret key
$data = Yii::$app->getSecurity()->hashData("mygenuinedata", $key);
var_dump($data);
//validate data with a secret key
$data = Yii::$app->getSecurity()->validateData($data, $key);
var_dump($data);
}
第2步 - 输入URL http:// localhost:8080 / index.php?r = site / auth ,您将看到以下内容。

I18N(国际化) 是设计可适用于各种语言的应用程序的过程。Yii提供全系列的I18N功能。区域设置是一组指定用户的语言和国家的参数。例如,en- US代表英语区域和美国。Yii提供两种语言:源语言和目标语言。源语言是写入应 ...