Files
midi-php/application/api/model/UserToken.php

65 lines
2.4 KiB
PHP
Raw Normal View History

2025-08-13 10:43:56 +08:00
<?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;
}
}