>백엔드 개발 >PHP 튜토리얼 >ThinkPHP_php 스킬에서 RBAC 클래스의 4가지 용도 분석

ThinkPHP_php 스킬에서 RBAC 클래스의 4가지 용도 분석

WBOY
WBOY원래의
2016-05-16 20:30:28997검색

이 기사의 예에서는 ThinkPHP에서 RBAC 클래스의 네 가지 용도를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.

첫 번째 카테고리: 로그인 컨트롤러의 로그인 작업에 배치

1.RBAC::인증();

기본적으로 사용자 테이블 검색문인 사용자 테이블에서 양식으로 제출된 사용자 이름의 데이터를 찾는 데 사용됩니다.

코드 복사 코드는 다음과 같습니다.
return M(modle)->where(array)-> find() ;
이 작업에는 두 개의 매개변수가 있습니다

a.array() 배열의 작성 방법 및 기능은 테이블 조회 배열과 동일합니다.

코드 복사 코드는 다음과 같습니다.
array('field'=>'value','field' => 배열('조건','값'));

b.model은 테이블 이름이고 기본값은 구성 매개변수입니다.

코드 복사 코드는 다음과 같습니다.
C('USER_AUTH_MODEL ');
반환값은 1차원 배열로 표시된 쿼리 결과입니다.
참고: 사용자 테이블에 대한 단일 레코드 검색 방법이므로 검색문 없이도 직접 검색문을 사용할 수 있습니다.

2.RBAC::saveAccessList();

사용자가 제어할 수 있는 애플리케이션 이름(그룹 이름), 컨트롤러 이름, 동작 이름을 3차원 배열 형태로 세션에 씁니다.

매개변수는 사용자 ID입니다. 일반적으로 사용자 로그인 인증을 통과한 후 세션에 사용자 ID를 기록합니다.

코드 복사 코드는 다음과 같습니다:
C('USER_AUTH_KEY');

이 방법은 기본적으로 $_SESSION(C('USER_AUTH_KEY')) 매개변수를 사용합니다.

두 번째 범주: 공용 컨트롤러에 배치(권한 확인에 참여하는 모든 컨트롤러 클래스는 이 클래스에서 상속되어야 함)

3.RBAC::AccessDecision();

은 현재 사용자에게 현재 제어에 대한 권한이 있는지 확인하는 데 사용됩니다. 기본 매개변수는 애플리케이션 이름 APP_NAME입니다. 그룹 모드인 경우 그룹 이름 GROUP_NAME을

에 전달해야 합니다.

여기서 메소드가 호출됩니다

코드 복사 코드는 다음과 같습니다.
RBAC::checkAccess();
현재 컨트롤러나 오퍼레이션이 이 판단에 참여하는지 확인하는 데 사용됩니다.

참고: 4개의 구성 매개변수가 있으며, 2개를 작성해야 합니다.

컨트롤러 확인 필요: REQUIRE_AUTH_MODULE 작업 확인 필요: REQUIRE_AUTH_ACTION

검증 컨트롤러 필요 없음: NOT_AUTH_MODULE 검증 작업 필요 없음: NOT_AUTH_ACTION

전체 쓰기가 필요한 경우: REQUIRE_AUTH_ACTION에 쓰는 동안 해당 컨트롤러가 REQUIRE_AUTH_MODULE에 작성되어야 합니다.

전체 쓰기가 필요하지 않은 경우: 컨트롤러가 NOT_AUTH_MODULE로 작성된 경우 해당 컨트롤러의 모든 메서드는 확인이 필요하지 않습니다.

NOT_AUTH_ACTION 단독으로 연산을 작성할 경우 연산 이름이 중복되는 문제에 주의해야 합니다.

4.RBAC::checkLogin();

사용자의 로그인 여부를 확인하는 데 사용됩니다.
참고: 로그인 후 홈 페이지에는 이 작업이 검증에 참여해야 한다고 표시되므로 각 역할에는 이 작업을 추가할 수 있는 권한이 있어야 합니다.

이 방법을 건너뛰고 $_SESSION[C('USER_AUTH_KEY')]가 존재하는지 직접 확인할 수도 있습니다. 존재하지 않는 경우 로그인 인터페이스로 이동하면 홈 페이지에 확인 없이 이 작업이 표시됩니다. 로그인.

이 글이 모든 분들의 ThinkPHP 프레임워크 프로그래밍에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.