65 lines
2.4 KiB
PHP
65 lines
2.4 KiB
PHP
|
|
<?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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|