ThinkPHP6은 효율적인 도구와 기능을 많이 제공하는 뛰어난 PHP 프레임워크입니다. 그중 인증 승인은 애플리케이션에서 권한을 관리하는 데 도움이 되는 매우 강력한 기능입니다. 이 글에서는 ThinkPHP6의 Auth 인증을 사용하는 방법을 소개합니다.
- 인증 구성 요소 설치
먼저 인증 구성 요소를 설치해야 합니다. 터미널에서 다음 명령을 실행합니다.
composer require topthink/think-auth
설치가 완료된 후 구성 파일에 인증 서비스 공급자를 추가해야 합니다.
// config/app.php return [ // ... 'providers' => [ // ... thinkuthServiceProvider::class, ], ];
그런 다음 다음 명령을 실행하여 인증 구성 파일을 생성해야 합니다.
php think auth:config
- 인증 구성 요소 구성
인증 구성 요소는 다양한 권한 관리 요구 사항을 충족하도록 구성할 수 있습니다. 다음은 기본 구성입니다.
// config/auth.php return [ 'auth_on' => true, 'auth_type' => 1, 'auth_group' => 'auth_group', 'auth_group_access' => 'auth_group_access', 'auth_rule' => 'auth_rule', 'auth_user' => 'user', ];
- auth_on: 권한 인증 활성화 여부, 활성화하려면 true, 닫으려면 false입니다. auth_type: 인증 방법, 1은 실시간 인증(즉, 권한이 확인될 때마다 권한을 다시 획득함), 2는 로그인 인증(즉, 사용자가 로그인한 후 권한을 확인함); : 사용자 그룹 데이터 테이블 이름
- auth_group_access: 사용자 그룹 세부 연관 테이블 이름
- auth_rule: 권한 규칙 테이블;
- 권한 규칙 만들기
- 다음으로 데이터베이스에 auth_rule 테이블을 생성해야 합니다.
// appmodelAuthRule.php namespace appmodel; use thinkModel; class AuthRule extends Model { // }
CREATE TABLE `auth_rule` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL COMMENT '规则', `title` VARCHAR(100) NOT NULL COMMENT '规则名称', `type` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '规则类型', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '状态', `condition` TEXT COMMENT '规则表达式', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='权限规则表';
use appmodelAuthRule; $rule = new AuthRule; $rule->name = 'admin/user/index'; $rule->title = '管理用户'; $rule->save(); $rule = new AuthRule; $rule->name = 'admin/user/add'; $rule->title = '添加用户'; $rule->save(); $rule = new AuthRule; $rule->name = 'admin/user/edit'; $rule->title = '编辑用户'; $rule->save(); $rule = new AuthRule; $rule->name = 'admin/user/del'; $rule->title = '删除用户'; $rule->save();
사용자 그룹 생성
권한 규칙 외에도 다음을 생성해야 합니다. 사용자 그룹. 사용자 그룹은 동일한 접근 권한을 가진 사용자들의 집합입니다. 데이터베이스에 auth_group 테이블을 생성한 다음 레코드를 추가하여 사용자 그룹을 생성해야 합니다.- 다음으로 데이터베이스에 auth_group 테이블을 생성해야 합니다.
// appmodelAuthGroup.php namespace appmodel; use thinkModel; class AuthGroup extends Model { // }
CREATE TABLE `auth_group` ( `id` INT NOT NULL AUTO_INCREMENT, `title` VARCHAR(100) NOT NULL COMMENT '组名', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '状态', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户组表';
use appmodelAuthGroup; $group = new AuthGroup; $group->title = '管理员'; $group->save(); $group = new AuthGroup; $group->title = '普通用户'; $group->save();
사용자 그룹 세부 정보 생성
이제 몇 가지 권한 규칙과 사용자를 생성했습니다. 여러 떼. 다음으로 사용자 그룹에 규칙을 할당해야 합니다. 데이터베이스에 auth_group_access 테이블을 생성한 다음 레코드를 추가하여 사용자 그룹 세부 정보를 생성해야 합니다.- 다음으로 데이터베이스에 auth_group_access 테이블을 생성해야 합니다.
// appmodelAuthGroupAccess.php namespace appmodel; use thinkModel; class AuthGroupAccess extends Model { // }
CREATE TABLE `auth_group_access` ( `uid` INT NOT NULL COMMENT '用户id', `group_id` INT NOT NULL COMMENT '用户组id', UNIQUE KEY `uid_group_id` (`uid`, `group_id`), KEY `uid` (`uid`), KEY `group_id` (`group_id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='用户组明细表';
use appmodelAuthGroupAccess; $access = new AuthGroupAccess; $access->uid = 1; $access->group_id = 1; $access->save(); $access = new AuthGroupAccess; $access->uid = 2; $access->group_id = 2; $access->save(); $access = new AuthGroupAccess; $access->uid = 3; $access->group_id = 2; $access->save();
인증을 사용한 승인
이제 몇 가지 권한 규칙과 사용자를 생성했습니다. 그룹을 지정하고 사용자 그룹에 규칙을 할당합니다. 다음으로 인증 승인을 사용하여 사용자에게 액세스 권한이 있는지 확인할 수 있습니다.- 먼저 세션에서 사용자 로그인 정보를 가져와야 합니다. 사용자가 로그인되어 있지 않은 경우 로그인 페이지로 이동합니다.
// 授权验证 use thinkacadeSession; use thinkacadeRequest; use thinkacadeConfig; use thinkacadeDb; use thinkuthAuth; class BaseController extends Controller { protected function initialize() { parent::initialize(); // 如果用户未登录,则跳转到登录页面 if (!Session::has('user')) { $this->redirect('/login'); } $uid = Session::get('user.id'); // 如果是超级管理员,则直接通过权限验证 if ($uid == Config::get('admin_id')) { return true; } $auth = new Auth; $route = strtolower(Request::controller() . '/' . Request::action()); if (!$auth->check($route, $uid)) { $this->error('无权限'); } } }
요약
이 글에서는 ThinkPHP6에서 Auth 인증을 사용하는 방법을 알아보았습니다. 인증 구성 요소를 사용하여 권한 관리를 구현하고 일부 권한 규칙과 사용자 그룹을 만듭니다. 마지막으로 인증 승인을 사용하여 사용자에게 액세스 권한이 있는지 확인합니다. 더 고급 권한 관리 기능이 필요한 경우 인증 구성 요소를 확장하여 이를 달성할 수 있습니다.위 내용은 ThinkPHP6의 인증 인증을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 ThinkPhp의 내장 테스트 프레임 워크에 대해 논의하여 장치 및 통합 테스트와 같은 주요 기능과 조기 버그 감지 및 개선 된 코드 품질을 통해 응용 프로그램 신뢰성을 향상시키는 방법을 강조합니다.

기사는 실시간 주식 시장 데이터 피드에 ThinkPHP를 사용하여 설정, 데이터 정확도, 최적화 및 보안 측정에 중점을 둡니다.

이 기사는 서버리스 아키텍처에서 ThinkPHP를 사용하기위한 주요 고려 사항에 대해 설명하고 성능 최적화, 무국적 설계 및 보안에 중점을 둡니다. 비용 효율성 및 확장 성과 같은 혜택을 강조하고 도전 과제를 해결합니다.

이 기사에서는 ThinkPHP 마이크로 서비스에서 서비스 검색 및로드 밸런싱 구현, 설정, 모범 사례, 통합 방법 및 권장 도구에 중점을 둡니다. [159 문자]

ThinkPhp의 IOC 컨테이너는 PHP apps.character 수 : 159의 효율적인 종속성 관리를위한 게으른 하중, 맥락 바인딩 및 메소드 주입과 같은 고급 기능을 제공합니다.

이 기사는 ThinkPhp를 사용하여 실시간 협업 도구를 구축하고 설정, WebSocket 통합 및 보안 모범 사례에 중점을 둡니다.

ThinkPhp는 가벼운 디자인, MVC 아키텍처 및 확장 성을 통해 SaaS 앱에 혜택을줍니다. 다양한 기능을 통해 확장 성을 향상시키고 개발 속도를 높이며 보안을 향상시킵니다.

이 기사는 설치, 구성, 작업 관리 및 확장성에 중점을 둔 ThinkPhp 및 RabbitMQ를 사용하여 분산 작업 큐 시스템을 구축합니다. 주요 문제는 고 가용성 보장, 손상과 같은 일반적인 함정을 피하는 것입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
