Comment utiliser l'authentification et l'autorisation dans le framework Yii ?

WBOY
Libérer: 2023-06-03 19:42:01
original
967 Les gens l'ont consulté

Dans les applications Web, l'authentification et l'autorisation sont des fonctions très importantes. Ils garantissent que seuls les utilisateurs autorisés peuvent accéder aux ressources protégées. Le framework Yii fournit des fonctions d'authentification et d'autorisation intégrées pour faciliter la mise en œuvre de ces fonctions par les développeurs.

Concepts de base de l'authentification et de l'autorisation

Dans les applications Web, l'authentification est le processus permettant de déterminer qui est un utilisateur. En règle générale, les utilisateurs fournissent un nom d'utilisateur et un mot de passe et, une fois l'authentification terminée en arrière-plan, ils ont accès aux ressources protégées de l'application. Le processus d'autorisation consiste à déterminer à quelles ressources cet utilisateur peut accéder. En règle générale, les applications attribuent aux utilisateurs différents rôles, chacun ayant accès à des ressources différentes.

Authentification et autorisation dans le framework Yii

Le framework Yii fournit des fonctions d'authentification et d'autorisation intégrées qui peuvent facilement implémenter ces fonctions. Le processus d'authentification est mis en œuvre via l'authentificateur d'identité (classe d'identité). Par défaut, le framework Yii fournit un authentificateur basé sur les cookies, qui crée un cookie persistant lorsqu'un utilisateur se connecte, y stocke les informations d'authentification de l'utilisateur et utilise le cookie pour authentifier l'utilisateur dans les demandes d'identité ultérieures.

Le processus d'autorisation est mis en œuvre via le filtre de contrôle d'accès. Le framework Yii fournit un contrôleur d'accès intégré qui peut facilement définir quels utilisateurs peuvent accéder à quelles ressources. Les contrôleurs d'accès peuvent être personnalisés via une fonction de rappel pour mieux répondre aux besoins de l'application.

Utilisation de l'authentificateur de Yii Framework

Pour utiliser l'authentificateur de Yii Framework, vous devez créer une classe Authenticator. La classe Authenticator doit hériter de l'interface yiiwebIdentityInterface et implémenter les méthodes de cette interface. Parmi elles, les méthodes les plus importantes sont findIdentity() et getId(). La méthode

findIdentity() est utilisée pour trouver l'utilisateur dans l'authentificateur. Cette méthode vous permet de vérifier le nom d'utilisateur et le mot de passe fournis par l'utilisateur et renvoie un objet d'informations d'authentification. La méthode getId() est utilisée pour renvoyer l'ID utilisateur dans l'objet d'informations d'authentification.

Voici un exemple de classe d'authentification :

namespace appmodels;

use Yii;
use yiidbActiveRecord;
use yiiwebIdentityInterface;

class User extends ActiveRecord implements IdentityInterface
{
    // other code

    public static function findIdentity($id)
    {
        return static::findOne(['id' => $id]);
    }

    public function getId()
    {
        return $this->id;
    }

    // other code
}
Copier après la connexion

Une fois que vous avez terminé de créer la classe d'authentification, vous pouvez la configurer en tant que composant d'application :

'components' => [
    // ...
    'user' => [
        'identityClass' => 'appmodelsUser',
        // other configuration
    ],
    // ...
],
Copier après la connexion

Vous pouvez maintenant utiliser Yii::$app-> ;composant utilisateur pour authentifier le utilisateur :

// 获取当前已登录的用户对象
$user = Yii::$app->user->identity;

// 登录用户
if ($user->validatePassword($password)) {
    Yii::$app->user->login($user);
}

// 登出用户
Yii::$app->user->logout();
Copier après la connexion

Utilisation du contrôleur d'accès de Yii Framework

Pour utiliser le contrôleur d'accès de Yii Framework, vous devez ajouter un comportement dans votre contrôleur. Le comportement est une instance de la classe Yii iltersAccessControl et peut être configuré dans la méthode behaviors() du contrôleur.

Le contrôleur d'accès déterminera si l'utilisateur est autorisé à accéder à la demande en cours via une fonction de rappel. La fonction de rappel doit renvoyer une valeur booléenne indiquant si l'accès à la requête est autorisé.

Ce qui suit est un exemple de contrôleur :

namespace appcontrollers;

use Yii;
use yiiwebController;
use yiiiltersAccessControl;

class SiteController extends Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
        ];
    }

    // other code
}
Copier après la connexion

Dans l'exemple ci-dessus, nous avons défini une règle d'accès selon laquelle seuls les utilisateurs connectés peuvent accéder au contrôleur. Vous pouvez définir plusieurs règles pour mieux définir quels utilisateurs ont accès à quelles ressources.

Résumé

Les fonctionnalités d'authentification et d'autorisation sont des fonctionnalités très importantes dans les applications Web. Le framework Yii fournit des fonctions d'authentification et d'autorisation intégrées pour faciliter la mise en œuvre de ces fonctions par les développeurs. Grâce aux authentificateurs et aux contrôleurs d'accès du framework Yii, vous pouvez facilement authentifier les utilisateurs et contrôler leur accès aux ressources protégées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!