国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
什麼是CakePHP授權(quán)?
如何檢查CakePHP授權(quán)?
建立 CakePHP 授權(quán)
CakePHP Authorization Installing
Conclusion
首頁 後端開發(fā) php教程 CakePHP授權(quán)

CakePHP授權(quán)

Aug 29, 2024 pm 12:58 PM
php

以下文章提供了 CakePHP 授權(quán)的概述。 CakePHP 是一個(gè)開源工具,它以可插拔的方式提供 Auth 元件來執(zhí)行我們的任務(wù)。 Auth元件用於提供身份驗(yàn)證和授權(quán)物件。換句話說,我們可以說它是兩者的組合,用於根據(jù)我們的要求確定使用者的授權(quán)和身份驗(yàn)證。身份驗(yàn)證意味著確定使用者憑證並驗(yàn)證這些憑證,例如使用者名稱和密碼。另一方面,授權(quán)意味著根據(jù)使用者憑證和使用者提供的其他資訊對(duì)使用者進(jìn)行驗(yàn)證。

開始您的免費(fèi)軟體開發(fā)課程

網(wǎng)頁開發(fā)、程式語言、軟體測(cè)試及其他

什麼是CakePHP授權(quán)?

正如您可能知道的,「最近」(不是最近)添加了兩個(gè)新模組來管理 CakePHP 應(yīng)用程式中的身份驗(yàn)證和授權(quán)的想法。從長(zhǎng)遠(yuǎn)來看,身份驗(yàn)證和授權(quán)是在控制器層使用 AuthComponent 進(jìn)行監(jiān)督的。隨著任務(wù)的發(fā)展,這兩件事通常會(huì)變得錯(cuò)綜複雜,使 AuthComponent 成為同時(shí)管理許多元素的令人困惑的類別。

這些新模組背後的第一個(gè)想法是重構(gòu) AuthComponent 並創(chuàng)建明確層來處理:

確認(rèn):你是誰?

批準(zhǔn):你說你被允許了嗎?

我們將利用特定模型研究本文中的授權(quán)想法:我們應(yīng)該設(shè)想一些遊戲應(yīng)用程序,用戶將在其中監(jiān)督錦標(biāo)賽。用戶希望舉辦新的錦標(biāo)賽並透過具有眾多附屬關(guān)係的錦標(biāo)賽會(huì)員資格加入錦標(biāo)賽。除非歡迎客戶參加比賽,否則客戶不會(huì)參加錦標(biāo)賽。錦標(biāo)賽的玩家可以歡迎不同的使用者來玩。

如何檢查CakePHP授權(quán)?

現(xiàn)在讓我們看看如何檢查 CakePHP 授權(quán),如下所示:

在我們各自的應(yīng)用程式中實(shí)作授權(quán)中間件後,我們可以檢查授權(quán)。這是因?yàn)橹虚g件包裝了每個(gè)請(qǐng)求的身份。

現(xiàn)在讓我們看看如何檢查單一資源的授權(quán),如下所示:

他們可以幫助您真正查看單一資產(chǎn)的批準(zhǔn)。通常這是一個(gè) ORM 物質(zhì)或應(yīng)用領(lǐng)域物件。

您的政策給出了決定批準(zhǔn)選擇的理由:

代碼:

// Fetch identity from each and every request
$user = $this->request->getAttribute('identity');
// Checking authorization on $sample
if ($user->can('delete', $sample)) {
// Do delete operation
}

現(xiàn)在讓我們來看看如何應(yīng)用範(fàn)圍條件,如下:

每當(dāng)您需要對(duì)各種項(xiàng)目進(jìn)行批準(zhǔn)檢查(例如分頁查詢)時(shí),您通常需要取得目前客戶接觸的記錄。這個(gè)模組將這個(gè)想法作為「範(fàn)圍」來實(shí)現(xiàn)。

範(fàn)圍方法可讓您「範(fàn)圍」查詢或結(jié)果集並傳回刷新的綱要或問題物件:

代碼:

// Fetch the identity from each and every request
$specified user = $this->request->getAttribute('identity');
$Sql_query = $specified fuser->ApplyScopeTo('index', $Sql_query);

授權(quán)組件可用於監(jiān)管活動(dòng)中以??順利批準(zhǔn),從而提高失望的豁免率。

建立 CakePHP 授權(quán)

現(xiàn)在讓我們看看如何在 CakePHP 中建立授權(quán),範(fàn)例如下:

首先,我們需要了解需要考慮哪些參數(shù),如下:

確認(rèn)是區(qū)分合適客戶最常見的方式。 CakePHP 支援三種驗(yàn)證。

  • FormAuthenticate:它允許您確認(rèn)給定結(jié)構(gòu)化 POST 資訊的客戶端。通常,這是客戶端輸入資料的登入結(jié)構(gòu)。這是預(yù)設(shè)的驗(yàn)證策略。
  • BasicAuthenticate:它允許您確認(rèn)客戶端正在使用基本 HTTP 驗(yàn)證。
  • DigestAuthenticate:它允許您確認(rèn)客戶端正在使用摘要 HTTP 驗(yàn)證。

首先,我們需要設(shè)定routes.php文件,如下:

代碼:

<?php
use Cake\Core\Plugin;
use Cake\Routing\RouteBuilder;
use Cake\Routing\Router;
Router::defaultRouteClass('DRoute');
Router::scope('/', function (RouteBuilder $routes) {
$routes->connect('/auth',['controller'=>'Auth','action'=>'index']);
$routes->connect('/login',['controller'=>'Auth','action'=>'login']);
$routes->connect('/logout',['controller'=>'Auth','action'=>'logout']);
$routes->fallbacks('DRoute');
});
Plugin::routes();

之後,我們需要建立一個(gè)controller.php文件,並寫如下程式碼:

代碼:

<?php
namespace App\Controller;
use Cake\Controller\Controller;
use Cake\Event\Event;
use Cake\Controller\Component\AuthComponent;
class DemoController extends Controller {
public function initialize() {
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'userid',
'password' => 'userpass'
]
]
],
'loginAction' => [
'controller' => 'Authexs',
'action' => 'login'
],
'loginRedirect' => [
'controller' => 'Authexs',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Authexs',
'action' => 'login'
]
]);
}
public function BFilter(Event $eventt) {
$this->Auth->allow(['index','view']);
$this->set('loggedIn', $this->Auth->specified user());
}
}

現(xiàn)在建立 authcontrollr.php 檔案並編寫以下程式碼:

代碼:

<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\ORM\TableRegistry;
use Cake\Datasource\ConnectionManager;
use Cake\Event\Eventt;
use Cake\Auth\DefaultPasswordHasher;
class AuthController extends AppController {
var $component = array('Auth');
public function index(){
}
public function login(){
if($this->request->is('post')) {
$specified_user = $this->Auth->identify();
if($user){
$this->Auth->setUser($specified_user);
return $this->redirect($this->Auth->redirectUrl());
} else
$this->Flash->errormsg('Entered username and password is wrong');
}
}
public function logout(){
return $this->redirect($this->Auth->logout());
}
}

最後,我們需要建立一個(gè)登入範(fàn)本來查看結(jié)果,如下。

<?php
echo $this->Form->create();
echo $this->Form->control('UserID');
echo $this->Form->control('Userpass');
echo $this->Form->button('Submit');
echo $this->Form->end();
?>

說明:

這裡我們建立一個(gè)模板來查看結(jié)果。執(zhí)行上述程式碼後,我們將得到以下畫面。

CakePHP授權(quán)

在這裡我們可以提供用於登入的使用者憑證。

我們必須建立另一個(gè)用於登出的 PHP 檔案並編寫以下程式碼。

代碼:

<?php
echo $this->Html->link('logout',[
"controller" => "Auth","action" => "logout"
]);
?>

After executing the above code, we will get the following screen.

CakePHP授權(quán)

CakePHP Authorization Installing

Now let’s see how we can install authorization in CakePHP as follows:

First, we need to load the plugin by using the following statement as follows:

Code:

$this-> addPlugin('Authorization');

After that, we need to enable all authorization plugins by importing the following class as follows:

Code:

use Authorization\AuthorizationService;
use Authorization\AuthorizationServiceInterface;
use Authorization\AuthorizationServiceProviderInterface;
use Authorization\Middleware\AuthorizationMiddleware;
use Authorization\Policy\OrmResolver;

After creating a policy as per our requirement, we also need to fix add and edit action as per our requirement. The requirement mentioned above we can achieve through coding.

Conclusion

From the above article, we have taken in the essential idea of the CakePHP authorization and see the representation and example of the CakePHP authorization. Finally, we saw how and when we use the CakePHP authorization from this article.

以上是CakePHP授權(quán)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

如何將兩個(gè)PHP陣列組合獨(dú)特的值? 如何將兩個(gè)PHP陣列組合獨(dú)特的值? Jul 02, 2025 pm 05:18 PM

要合併兩個(gè)PHP數(shù)組並保留唯一值,有兩種主要方法。 1.對(duì)於索引數(shù)組或僅需值去重的情況,使用array_merge和array_unique組合:先用array_merge($array1,$array2)合併數(shù)組,再用array_unique()去重,最終得到包含所有唯一值的新數(shù)組;2.對(duì)於關(guān)聯(lián)數(shù)組且希望保留第一個(gè)數(shù)組中的鍵值對(duì)時(shí),使用 運(yùn)算符:$result=$array1 $array2,這將確保第一個(gè)數(shù)組中的鍵不會(huì)被第二個(gè)數(shù)組覆蓋。這兩種方法分別適用於不同場(chǎng)景,根據(jù)是否需要保留鍵名或只關(guān)注

如何使用PHP退出功能? 如何使用PHP退出功能? Jul 03, 2025 am 02:15 AM

exit()是PHP中用於立即終止腳本執(zhí)行的函數(shù),常見用途包括:1.在檢測(cè)到異常情況時(shí)提前終止腳本,如文件不存在或驗(yàn)證失??;2.調(diào)試時(shí)輸出中間結(jié)果並停止執(zhí)行;3.結(jié)合header()重定向後調(diào)用exit()防止後續(xù)代碼執(zhí)行;此外,exit()可接受字符串參數(shù)作為輸出內(nèi)容或整數(shù)作為狀態(tài)碼,其別名為die()。

將語義結(jié)構(gòu)應(yīng)用於html的文章,部分和旁邊 將語義結(jié)構(gòu)應(yīng)用於html的文章,部分和旁邊 Jul 05, 2025 am 02:03 AM

在HTML中合理使用語義化標(biāo)籤能提升頁面結(jié)構(gòu)清晰度、可訪問性和SEO效果。 1.用於獨(dú)立內(nèi)容區(qū)塊,如博客文章或評(píng)論,需保持自包含性;2.用於歸類相關(guān)內(nèi)容,通常包含標(biāo)題,適用於頁面不同模塊;3.用於與主內(nèi)容相關(guān)但非核心的輔助信息,如側(cè)邊欄推薦或作者簡(jiǎn)介。實(shí)際開發(fā)中應(yīng)結(jié)合、等標(biāo)籤,避免過度嵌套,保持結(jié)構(gòu)簡(jiǎn)潔,並通過開發(fā)者工具驗(yàn)證結(jié)構(gòu)合理性。

如何在PHP中創(chuàng)建數(shù)組? 如何在PHP中創(chuàng)建數(shù)組? Jul 02, 2025 pm 05:01 PM

在PHP中創(chuàng)建數(shù)組的方法有兩種:使用array()函數(shù)或使用中括號(hào)[]。 1.使用array()函數(shù)是傳統(tǒng)方式,兼容性好,定義索引數(shù)組如$fruits=array("apple","banana","orange"),關(guān)聯(lián)數(shù)組如$user=array("name"=>"John","age"=>25);2.使用[]是從PHP5.4開始支持的更簡(jiǎn)潔的方式,如$color

請(qǐng)求的操作需要高程窗戶 請(qǐng)求的操作需要高程窗戶 Jul 04, 2025 am 02:58 AM

遇到“此操作需要提升權(quán)限”提示時(shí),說明你需要管理員權(quán)限才能繼續(xù)。解決方法包括:1.右鍵選擇“以管理員身份運(yùn)行”程序或設(shè)置快捷方式始終以管理員身份運(yùn)行;2.檢查當(dāng)前賬戶是否為管理員賬戶,若不是則切換或請(qǐng)求管理員協(xié)助;3.用管理員權(quán)限打開命令提示符或PowerShell執(zhí)行相關(guān)命令;4.在必要時(shí)通過獲取文件所有權(quán)或修改註冊(cè)表等手段繞過限制,但此類操作需謹(jǐn)慎並充分了解風(fēng)險(xiǎn)。確認(rèn)權(quán)限身份並嘗試上述方法通??山鉀Q問題。

PHP原始帖子數(shù)據(jù)PHP PHP原始帖子數(shù)據(jù)PHP Jul 02, 2025 pm 04:51 PM

在PHP中處理原始POST數(shù)據(jù)的方法是使用$rawData=file_get_contents('php://input'),適用於接收J(rèn)SON、XML或其他自定義格式數(shù)據(jù)。 1.php://input是一個(gè)只讀流,僅在POST請(qǐng)求中有效;2.常見問題包括服務(wù)器配置或中間件已讀取輸入流導(dǎo)致無法獲取數(shù)據(jù);3.應(yīng)用場(chǎng)景包括接收前端fetch請(qǐng)求、第三方服務(wù)回調(diào)和構(gòu)建RESTfulAPI;4.與$_POST的區(qū)別在於$_POST自動(dòng)解析標(biāo)準(zhǔn)表單數(shù)據(jù),而原始數(shù)據(jù)適合非標(biāo)準(zhǔn)格式並允許手動(dòng)解析;5.普通HTM

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗(yàn)證來源與類型、控製文件名與路徑、設(shè)置服務(wù)器限制並二次處理媒體文件。 1.驗(yàn)證上傳來源通過token防止CSRF並通過finfo_file檢測(cè)真實(shí)MIME類型使用白名單控制;2.重命名文件為隨機(jī)字符串並根據(jù)檢測(cè)類型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問上傳目錄;4.GD庫重新保存圖片清除潛在惡意數(shù)據(jù)。

您如何按值與PHP中的參考傳遞變量? 您如何按值與PHP中的參考傳遞變量? Jul 08, 2025 am 02:42 AM

InPHP,variablesarepassedbyvaluebydefault,meaningfunctionsorassignmentsreceiveacopyofthedata,whilepassingbyreferenceallowsmodificationstoaffecttheoriginalvariable.1.Whenpassingbyvalue,changestothecopydonotimpacttheoriginal,asshownwhenassigning$b=$aorp

See all articles