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

Comment utiliser le jeton du framework ThinkPhp en PHP

PHPz
PHPzavant
2023-05-26 14:14:251878parcourir

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)
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错误验证失败
}

3. Créez une fonction

douserLogin($username,$password)
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":"登录成功"}');
                }
            }
        }
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer