api token优化

feat/task1-c-wallet
gongfuxiang 2019-08-18 19:38:03 +08:00
parent 61db80920c
commit d1bf5d62dd
3 changed files with 39 additions and 10 deletions

View File

@ -48,8 +48,8 @@ class UserService
// token仅小程序浏览器环境和api接口环境中有效
if(empty($user) && !empty($params['token']) && in_array(MiniAppEnv(), config('shopxo.mini_app_type_list')))
{
$user = cache(config('shopxo.cache_user_info').$params['token']);
if(isset($user['id']))
$user = self::UserTokenData($params['token']);
if($user !== null && isset($user['id']))
{
self::UserLoginRecord($user['id']);
}
@ -57,13 +57,34 @@ class UserService
} else {
if(!empty($params['token']))
{
$user = cache(config('shopxo.cache_user_info').$params['token']);
$user = self::UserTokenData($params['token']);
}
}
return $user;
}
/**
* 获取用户token用户数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-08-18T19:01:59+0800
* @desc description
* @param [string] $token [用户token]
*/
private static function UserTokenData($token)
{
$user = cache(config('shopxo.cache_user_info').$token);
if($user !== null && isset($user['id']))
{
return $user;
}
// 数据库校验
return self::AppUserInfoHandle(null, 'token', $token);
}
/**
* 用户状态校验
* @author Devil
@ -1692,6 +1713,12 @@ class UserService
{
$user['token'] = md5(md5($user['id'].time()).rand(100, 1000000));
cache(config('shopxo.cache_user_info').$user['token'], $user);
// 非token数据库校验则重新生成token更新到数据库
if($where_field != 'token')
{
Db::name('User')->where(['id'=>$user['id']])->update(['token'=>$user['token'], 'upd_time'=>time()]);
}
} else {
$user['token'] = '';
}

File diff suppressed because one or more lines are too long

View File

@ -753,7 +753,6 @@ Page({
success: (res) => {
wx.hideLoading();
if (res.data.code == 0) {
console.log(res.data);
wx.previewImage({
current: res.data.data,
urls: [res.data.data]