Maison > cadre php > PensezPHP > Comment utiliser le jeton du framework ThinkPhp en PHP

Comment utiliser le jeton du framework ThinkPhp en PHP

PHPz
Libérer: 2023-05-26 14:14:25
avant
1964 Les gens l'ont consulté

1. L'utilisation de jetons dans le framework ThinkPhp

1. Tout d'abord, ajoutez deux champs token et time_out dans la table des utilisateurs de la base de données

token est utilisé pour stocker les jetons utilisateur. pour définir l'expiration des jetons utilisateur. Heure

2. Créer une fonction

checkToekn($token)
Copier après la connexion
La fonction est utilisée pour vérifier si le jeton existe et mettre à jour le jeton.

public function checkToken($token)
    {
        $user = new \app\index\model\Users();
        $res = $user->field('time_out')->where('token', $token)->select();
 
        if (!empty($res)) {
            //dump(time() - $res[0]['time_out']);
            if (time() - $res[0]['time_out'] > 0) {
     
                return 90003; //token长时间未使用而过期,需重新登陆
            }
            $new_time_out = time() + 604800; //604800是七天
            $res = $user->isUpdate(true)
                ->where('token', $token)
                ->update(['time_out' => $new_time_out]);
            if ($res) {
     
                return 90001; //token验证成功,time_out刷新成功,可以获取接口信息
            }
        }
 
        return 90002; //token错误验证失败
}
Copier après la connexion

3. Créez une fonction

douserLogin($username,$password)
Copier après la connexion
pour vérifier le nom d'utilisateur et le mot de passe, vous connecter et renvoyer les informations du jeton.

  public function douserLogin()
    {
        $user = new \app\index\model\Users();
        $userisset = $user->where('username', $username)->find();
        if ($userisset == null) {
            return json_decode('{"user":"' . $username . '","code":"400","msg":"用户不存在"}');
        } else {
            $userpsisset = $user
                ->where('username', $username)
                ->where('password', sha1(md5($password)))->find();
 
            if ($userpsisset == null) {
                return json_decode('{"user":"' . $username . '","code":"401","msg":"密码错误"}');
            } else {
                //session('user', $username);
                $token = $this->makeToken();
                $time_out = strtotime("+7 days");
                $userinfo = ['time_out' => $new_time_out,
                    'token' => $token];
                $res = $user->isUpdate(true)
                    ->where('username', $username)
                    ->update($userinfo);
                if ($res) {
                    return json_decode('{"user":"' . $username . '","toekn":'.$token.' "code":"0","msg":"登录成功"}');
                }
            }
        }
}
Copier après la connexion

2. Le concept de Token

Token est lorsque le client demande fréquemment des données au serveur et que le serveur accède fréquemment à la base de données pour interroger le nom d'utilisateur et le mot de passe afin de déterminer si le nom d'utilisateur et le mot de passe sont corrects, et faire les invites correspondantes Dans ce contexte Ensuite, le jeton est né.

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:yisu.com
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