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

目錄
什么是CakePHP授權(quán)?
如何檢查CakePHP授權(quán)?
創(chuàng)建 CakePHP 授權(quán)
CakePHP Authorization Installing
Conclusion

CakePHP授權(quán)

Aug 29, 2024 pm 12:58 PM
php

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

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

網(wǎng)絡(luò)開(kāi)發(fā)、編程語(yǔ)言、軟件測(cè)試及其他

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

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

這些新模塊背后的第一個(gè)想法是重構(gòu) AuthComponent 并創(chuàng)建顯式層來(lái)處理:

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

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

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

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

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

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

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

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

您的政策給出了決定批準(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)用范圍條件,如下所示:

每當(dāng)您需要對(duì)各種項(xiàng)目進(jìn)行批準(zhǔn)檢查(例如分頁(yè)查詢(xún))時(shí),您通常需要獲取當(dāng)前客戶(hù)接觸的記錄。這個(gè)模塊將這個(gè)想法作為“范圍”來(lái)實(shí)現(xiàn)。

范圍方法允許您“范圍”查詢(xún)或結(jié)果集并返回刷新的綱要或問(wèn)題對(duì)象:

代碼:

// 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),從而提高失望的豁免率。

創(chuàng)建 CakePHP 授權(quán)

現(xiàn)在讓我們看看如何在 CakePHP 中創(chuàng)建授權(quán),示例如下:

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

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

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

首先,我們需要配置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();

之后,我們需要?jiǎng)?chuàng)建一個(gè)controller.php文件,并編寫(xiě)如下代碼:

代碼:

<?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)在創(chuàng)建 authcontrollr.php 文件并編寫(xiě)以下代碼:

代碼:

<?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());
}
}

最后,我們需要?jiǎng)?chuàng)建一個(gè)登錄模板來(lái)查看結(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();
?>

說(shuō)明:

這里我們創(chuàng)建一個(gè)模板來(lái)查看結(jié)果。執(zhí)行上述代碼后,我們將得到以下屏幕。

CakePHP授權(quán)

在這里我們可以提供用于登錄的用戶(hù)憑據(jù)。

我們必須創(chuàng)建另一個(gè)用于注銷(xiāo)的 PHP 文件并編寫(xiě)以下代碼。

代碼:

<?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)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系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

用于從照片中去除衣服的在線(xiàn)人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

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集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話(huà)題

如何將兩個(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ù),常見(jiàn)用途包括: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()。

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

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

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

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

如何在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開(kāi)始支持的更簡(jiǎn)潔的方式,如$color

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.常見(jiàn)問(wèn)題包括服務(wù)器配置或中間件已讀取輸入流導(dǎo)致無(wú)法獲取數(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)證來(lái)源與類(lèi)型、控制文件名與路徑、設(shè)置服務(wù)器限制并二次處理媒體文件。1.驗(yàn)證上傳來(lái)源通過(guò)token防止CSRF并通過(guò)finfo_file檢測(cè)真實(shí)MIME類(lèi)型使用白名單控制;2.重命名文件為隨機(jī)字符串并根據(jù)檢測(cè)類(lèi)型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪(fǎng)問(wèn)上傳目錄;4.GD庫(kù)重新保存圖片清除潛在惡意數(shù)據(jù)。

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

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

See all articles