Files
yusheng-php/application/api/model/UserToken.php
2025-08-07 20:21:47 +08:00

65 lines
2.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\model;
use think\Db;
use think\Model;
class UserToken extends Model
{
// 检测登录
public function check_login_token($token)
{
if (empty($token)) {
return ['code' => 301, 'msg' => '登录失效', 'data' =>null];
}
$user_token = $this->where('token', $token)->find();
if (empty($user_token)) {
return ['code' => 301, 'msg' => '登录失效', 'data' => null];
}
if ($user_token['expiretime'] < time()) {
return ['code' => 301, 'msg'=> '登录失效', 'data' => null];
}
$block1 = db::name('block')->where(['type' => 1,'type_text' => $user_token['user_id']])->find();
$userState = db::name('user')->where(['id' => $user_token['user_id']])->value('status');
if(isset($block1) && $userState == 2){
return ['code' => 204, 'msg'=> '账号已被封禁,请联系管理员','data' => null];
}
$login_device = request()->header('deviceId');
$block2 = db::name('block')->where(['type' => 2,'type_text' => $login_device])->find();
if(isset($block2)){
return ['code' => 205, 'msg'=> '设备已被封禁,请联系管理员','data' => null];
}
$Ip = request()->ip();
$block3 = db::name('block')->where(['type' => 3,'type_text' => $Ip])->find();
if(isset($block3)){
return ['code' => 206, 'msg'=> 'IP已被封禁请联系管理员','data' => null];
}
return ['code' => 1, 'msg'=> '成功','data' => $user_token['user_id']];
}
//更新token
public function update_token($user_id)
{
$token =md5($user_id . date('YmdHis') . generateRandom(32));
$expiretime = time() + 3600 * 24 * 7;
$data_token = $this->where('user_id', $user_id)->find();
if(empty($data_token)){
$data_token = [];
$data_token['user_id'] = $user_id;
$data_token['token'] = $token;
$data_token['expiretime'] = $expiretime;
if(!($this->save($data_token))){
return ['code' => 0, 'msg'=> 'token更新失败'];
}
}else{
if(!($this->where('user_id', $user_id)->update(['token' => $token, 'expiretime' => $expiretime]))){
return ['code' => 0, 'msg'=> 'token更新失败'];
}
}
return $token;
}
}