RBAC 마이그레이션이 적용된 yii2 고급 템플릿이 있습니다. RBAC을 배우려고했고 Docs 2.0을 따랐습니다.yii2 백엔드 사용자 로그인 거부
데이터베이스를 사용하여 로그인했지만 프런트 엔드와 백 엔드가 모두 계정으로 로그인되어 있습니다. 2 RBAC 역할 (관리자, 사용자)을 만들었지 만 이해할 수 없거나 찾을 방법을 찾을 수 없습니다.
관리자가 아닌 사용자 역할에 로그인하도록 백엔드를 제한하십시오.
다음은 역할 코드입니다. 및 데이터베이스 항목 :
namespace console\controllers;
use Yii;
use yii\console\Controller;
class RbacController extends Controller
{
public function actionInit()
{
$auth = Yii::$app->authManager;
// add "admin" role
$admin = $auth->createRole('admin');
$auth->add($admin);
// add "user" role
$user = $auth->createRole('user');
$auth->add($user);
$auth->assign($admin, 1);
}
}
사용자 테이블 :
admin [email protected] 20 10 1421197319 1421197319
user [email protected] 10 10 1421198124 1421198124
현재 규칙 :
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'actions' => ['logout', 'index'],
'allow' => true,
'roles' => ['@'],
],
감사합니다. 이것은 작동하지 않습니다. 백엔드 컨트롤러에는 이미 동작이 있습니다. 누구든지 로그인에 액세스 할 수 있지만 admin 만 로그인하고 액세스 할 수 있도록 규칙을 만들 수 있습니다. 백엔드에는 2 페이지의 색인 및 로그인 만 있습니다. 나는 행동 => [로그인, 색인, 오류] 역할 => [관리자]. 그것은 심지어 로그인 페이지를 볼 수 없습니다, 현재 사용자는 bcoz입니다. 규칙에 따라 관리 역할이 필요합니다. 나는 그것을 시도했다. 문제는 내가 설명했다. – Bsienn
DSN에 RBAC 테이블이 있고 사용자 "admin"이 역할 "admin"을 할당했는지 확인하십시오. 예를 들어 작업에 대한 액세스를 설정하는 방법은 다음과 같습니다. http://www.yiiframework.com/doc-2.0/guide-security-authorization.html – TomaszKane
Yii2 백엔드의 색인 페이지에 공개 액세스를 허용하고 싶었던 문제가있었습니다. 귀하의 코드는 저에게 그 실마리를주었습니다 :) ['actions'=> [ 'index'], 'allow'=> 참, 'roles'=> [ '?'], ] 감사의 친구 –