PHP-Casbin은 다양한 액세스 제어 모델을 기반으로 권한 관리를 지원하는 강력하고 효율적인 오픈 소스 액세스 제어 프레임워크입니다.
Think-Casbin은 ThinkPHP5.1용으로 특별히 맞춤화된 Casbin 확장 패키지로, 개발자가 thinkphp 프로젝트에서 Casbin을 더 쉽게 사용할 수 있도록 해줍니다.
Install
thinkphp 프로젝트 생성(그렇지 않은 경우):
composer create-project topthink/think=5.1.* tp5
ThinkPHP 프로젝트에서 Think-Casbin 확장을 설치합니다:
composer require casbin/think-adapter
Publish resources:
php think casbin:publish
이렇게 하면 모델 구성 파일 config/casbin-basic이 자동으로 생성됩니다. -model .conf 및 Casbin의 구성 파일 config/casbin.php.
데이터 마이그레이션:
Think-Casbin은 기본적으로 Casbin의 정책(Policy)을 데이터베이스에 저장하므로 데이터베이스 테이블 정보를 초기화해야 합니다.
실행 전 데이터베이스 연결 정보가 올바르게 구성되어 있는지 확인하세요. Casbin의 데이터베이스 연결 정보나 테이블 이름을 별도로 수정해야 하는 경우 config/casbin.php에서 구성을 수정하면 됩니다.
php think casbin:migrate
이렇게 하면 Casbin의 정책 테이블 casbin_rule이 자동으로 생성됩니다.
Middleware
ThinkPHP는 버전 5.1.6+부터 공식적으로 미들웨어 지원을 도입했습니다.
명령줄 지침을 통해 신속하게 미들웨어를 생성할 수 있습니다.
php think make:middleware Authorization
이 명령은 application/http/middleware 디렉토리 아래에 인증 미들웨어를 생성합니다.
미들웨어에서 Casbin을 통해 현재 사용자 이름, URI, 요청 방법을 가져오고 권한을 확인합니다.
<?php namespace app\http\middleware; use Casbin; use think\facade\Session; class Authorization { public function handle($request, \Closure $next) { // 当前登录用户名,这里以session为例 // $user = Session::get('user_name') ?: 'test_user'; $user = Session::get('user_name'); $url = $request->url(); $action = $request->method(); if (!$user){ return response()->data('Unauthenticated.')->code(401); } if (!Casbin::enforce($user, $url, $action)) { return response()->data('Unauthorized.')->code(403); } return $next($request); } }
Casbin 모델 구성
configcasbin-basic-model.conf 구성 파일:
[request_definition] r = sub, obj, act [policy_definition] p = sub, obj, act [policy_effect] e = some(where (p.eft == allow)) [matchers] m = r.sub == p.sub && keyMatch2(r.obj, p.obj) && r.act == p.act
Verification
인증을 수행하기 전에 먼저 데이터베이스 casbin_rule 테이블에 몇 가지 기본 정책을 추가하세요:
라우팅 및 해당 미들웨어 추가:
Route::group('users', function () { Route::get('', function () { return 'Users data.'; }); Route::get('/:id', function ($id) { return 'User: '.$id; }); })->middleware(\app\http\middleware\Authorization::class);
먼저 사용자에 로그인하고 사용자 이름을 SESSION에 저장하면 /users에 액세스할 수 있습니다. /users/1 권한을 확인합니다.
추천 튜토리얼: "TP5"
위 내용은 thinkphp에서 Casbin을 권한 제어 미들웨어로 사용하기의 상세 내용입니다. 자세한 내용은 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를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

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

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

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