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