Die Berechtigungssteuerung ist eine unverzichtbare Funktion bei der Entwicklung von Webanwendungen. Der eingebaute Mechanismus des Genehmigungsmanagements des CakePHP-Frameworks kann Entwicklern helfen, den Implementierungsprozess der Berechtigungskontrolle zu vereinfachen. In diesem Artikel wird nach und nach vorgestellt, wie das CakePHP -Framework verwendet wird, um die Berechtigungskontrolle zu implementieren, und wird von Code -Beispielen begleitet, um die relevanten Fähigkeiten schnell zu beherrschen.
Zunächst müssen Sie das CakePHP -Framework in der Entwicklungsumgebung installieren. Es kann über Composer installiert werden oder der Quellcode kann von der offiziellen Website heruntergeladen werden. Erstellen Sie nach Abschluss der Installation eine neue CakePHP -Anwendung, um die Konfiguration der Berechtigungssteuerung zu starten.
In CakePHP basiert die Berechtigungssteuerung hauptsächlich auf der AuthComponent -Komponente. Durch das Laden dieser Komponente im Anwendungscontroller können die Berechtigungsüberprüfung und die Identitätsauthentifizierung einfach eingestellt werden.
// existierenAppController.phpIn der Datei
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authorize' => 'Controller',
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'email',
'password' => 'password'
]
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
],
'unauthorizedRedirect' => $this->referer()
]);
}
Im Code lädt die LoadComponent -Methode die Auth -Komponente, und der Parameter "autorisieren" definiert die Berechtigungsüberprüfungsmethode und wird auf die Controller -Ebene eingestellt. "Authentifizierer" konfiguriert die für die Formauthentifizierung erforderlichen Felder, "Loginaction" gibt die Anmeldeseite an, um zu springen, wenn nicht autorisierter Zugriff nicht autorisiert ist, und "nicht autorisierte REDIRECT" definiert die Umleitungsadresse, wenn die Berechtigungen unzureichend sind.
Die Berechtigungsregeln werden durch die isauthorisierte Methode im Controller definiert. Diese Methode bestimmt, ob der aktuelle Benutzer das Recht hat, die angeforderte Operation durchzuführen.
// existierenUsersController.phpIn der Datei
public function isAuthorized($user)
{
$action = $this->request->getParam('action');
if (in_array($action, ['edit', 'delete'])) {
$userId = $this->request->getParam('pass.0');
if ($userId == $user['id']) {
return true;
}
}
return parent::isAuthorized($user);
}
Erhalten Sie hier zuerst den angeforderten Operationamen. Zum Bearbeiten und Löschen von Vorgängen, die Berechtigungen erfordern, vergleichen Sie die Benutzer-ID weiter in den Betriebsparametern und der aktuell angemeldeten Benutzer-ID. Wenn das Match fertig ist, autorisieren Sie es. Andernfalls wird die übergeordnete Klassenmethode für das standardmäßige Beurteilung der Berechtigungsberechtigte gefordert.
Dynamisch den Anmelde- oder Abmeldenlink anhand dessen, ob der Benutzer angemeldet ist, dynamisch anzeigen, um die Benutzererfahrung zu verbessern.
// existieren视图In der Datei
if ($this->Auth->user()) {
echo $this->Html->link('Logout', ['controller' => 'Users', 'action' => 'logout']);
} else {
echo $this->Html->link('Login', ['controller' => 'Users', 'action' => 'login']);
}
Verwenden Sie die Benutzermethode der Auth -Komponente, um den Anmeldestatus des Benutzers zu bestimmen. Der Link "Logout" wird beim Anmelden angezeigt, und der Link "Anmeldung" wird bei der Anmeldung angezeigt. Dies ist für Benutzer bequem zu bedienen.
Durch die Installation des CakePHP -Frameworks, das Konfigurieren von Auth -Komponenten, das Definieren von Berechtigungsregeln und das Anzeigen von Autorisierungslinks in der Ansicht kann schnell ein vollständiges Berechtigungssteuerungssystem erstellt werden. Der obige Beispielcode hilft Ihnen, eine CakePHP-basierte Berechtigungsmanagementlösung zu verstehen und zu implementieren, um die Sicherheit und Flexibilität Ihrer Anwendung zu gewährleisten.