添加:移动端商户登录后 服务端生成并且解析token,判断登录是否有效,同时记录登录态及相关信息
This commit is contained in:
parent
04751a6c8f
commit
8f292b9963
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
namespace app\common\middleware;
|
namespace app\common\middleware;
|
||||||
|
|
||||||
use app\common\repositories\user\UserRepository;
|
use app\common\repositories\system\merchant\MerchantAdminRepository;
|
||||||
|
use app\common\repositories\system\merchant\MerchantRepository;
|
||||||
use app\Request;
|
use app\Request;
|
||||||
use crmeb\exceptions\AuthException;
|
use crmeb\exceptions\AuthException;
|
||||||
use crmeb\services\JwtTokenService;
|
use crmeb\services\JwtTokenService;
|
||||||
|
|
@ -17,24 +18,13 @@ class ShopTokenMiddleware extends BaseMiddleware{
|
||||||
public function before(Request $request){
|
public function before(Request $request){
|
||||||
$force = $this->getArg(0, true);
|
$force = $this->getArg(0, true);
|
||||||
try {
|
try {
|
||||||
$token = trim($request->header('X-Token'));
|
$token = trim($request->header('Shop-Token'));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
throw new ValidateException('请登录');
|
|
||||||
|
|
||||||
|
|
||||||
if (strpos($token, 'Bearer') === 0) $token = trim(substr($token, 6));
|
if (strpos($token, 'Bearer') === 0) $token = trim(substr($token, 6));
|
||||||
if (!$token) throw new ValidateException('请登录');
|
if (!$token) throw new ValidateException('请登录');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var UserRepository $repository
|
* @var MerchantAdminRepository $repository
|
||||||
*/
|
*/
|
||||||
$repository = app()->make(UserRepository::class);
|
$repository = app()->make(MerchantAdminRepository::class);
|
||||||
$service = new JwtTokenService();
|
$service = new JwtTokenService();
|
||||||
try {
|
try {
|
||||||
$payload = $service->parseToken($token);
|
$payload = $service->parseToken($token);
|
||||||
|
|
@ -44,47 +34,42 @@ class ShopTokenMiddleware extends BaseMiddleware{
|
||||||
} catch (Throwable $e) {//Token 过期
|
} catch (Throwable $e) {//Token 过期
|
||||||
throw new AuthException('token 已过期');
|
throw new AuthException('token 已过期');
|
||||||
}
|
}
|
||||||
if ('user' != $payload->jti[1])
|
if ('mer' != $payload->jti[1]) throw new AuthException('无效的 token');
|
||||||
throw new AuthException('无效的 token');
|
|
||||||
|
|
||||||
$user = $repository->get($payload->jti[0]);
|
$admin = $repository->get($payload->jti[0]);
|
||||||
if (!$user)
|
if (!$admin) throw new AuthException('账号不存在');
|
||||||
throw new AuthException('用户不存在');
|
if (!$admin['status']) throw new AuthException('账号已被禁用');
|
||||||
if (!$user['status'])
|
|
||||||
throw new AuthException('用户已被禁用');
|
/**
|
||||||
if ($user['cancel_time'])
|
* @var MerchantRepository $merchantRepository
|
||||||
throw new AuthException('用户不存在');
|
*/
|
||||||
|
$merchantRepository = app()->make(MerchantRepository::class);
|
||||||
|
|
||||||
|
$merchant = $merchantRepository->get($admin->mer_id);
|
||||||
|
|
||||||
|
if (!$merchant || !$merchant['status'])
|
||||||
|
throw new AuthException('商户已被锁定');
|
||||||
|
|
||||||
} catch (Throwable $e) {
|
} catch (Throwable $e) {
|
||||||
if ($force)
|
if ($force) throw $e;
|
||||||
throw $e;
|
$request->macro('shopIsLogin', function () {
|
||||||
$request->macro('isLogin', function () {
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
$request->macros(['tokenInfo', 'uid', 'userInfo', 'token'], function () {
|
$request->macros(['merchantType', 'shopMerId'], function () {
|
||||||
throw new AuthException('请登录');
|
throw new AuthException('请登录');
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$repository->updateToken($token);
|
$repository->updateToken($token);
|
||||||
|
|
||||||
$request->macro('isLogin', function () {
|
$request->macro('shopIsLogin', function () {
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
$request->macro('userType', function () {
|
$request->macro('merchantType', function () use (&$merchant) {
|
||||||
return 1;
|
return $merchant->merchant_type;
|
||||||
});
|
});
|
||||||
$request->macro('tokenInfo', function () use (&$payload) {
|
$request->macro('merchantId', function () use (&$admin) {
|
||||||
return $payload;
|
return $admin->mer_id;
|
||||||
});
|
|
||||||
$request->macro('token', function () use (&$token) {
|
|
||||||
return $token;
|
|
||||||
});
|
|
||||||
$request->macro('uid', function () use (&$user) {
|
|
||||||
return $user->uid;
|
|
||||||
});
|
|
||||||
$request->macro('userInfo', function () use (&$user) {
|
|
||||||
return $user;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,8 @@ class Supplier extends BaseController{
|
||||||
|
|
||||||
return app('json')->success($data);
|
return app('json')->success($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Common: 获取全部供应商商品
|
* Common: 获取全部供应商商品
|
||||||
* Author: wu-hui
|
* Author: wu-hui
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue