|
@@ -11,7 +11,7 @@ use Hyperf\Di\Annotation\Inject;
|
|
|
use Hyperf\HttpServer\Annotation\AutoController;
|
|
|
use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
|
|
use \Phper666\JWTAuth\JWT;
|
|
|
-
|
|
|
+use App\Model\UserToken;
|
|
|
/**
|
|
|
* @AutoController()
|
|
|
*/
|
|
@@ -95,13 +95,32 @@ class LoginController extends AbstractController
|
|
|
// var_dump($userData);
|
|
|
// 使用默认场景登录
|
|
|
$token = $jwt->getToken('default', $userData);
|
|
|
+
|
|
|
+ $old_token = UserToken::where('user_id', $userInfos['data']['id'])->orderBy('created_at')->first();
|
|
|
+ if ($old_token) {
|
|
|
+ if ($old_token->token != $token->toString()) {
|
|
|
+ $out = $jwt->logout('default', $userData);
|
|
|
+ if ($out != $old_token->token) {
|
|
|
+ $log_out = UserToken::where('user_id', $userInfos['data']['id'])->update(['token' => $out]);
|
|
|
+ } else {
|
|
|
+ return Result::error("请不要重复登录!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $user_token = UserToken::create([
|
|
|
+ 'user_id' => $userInfos['data']['id'],
|
|
|
+ 'token' => $token->toString()
|
|
|
+ ]);
|
|
|
+ if (!$user_token) {
|
|
|
+ return Result::error("登录失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
$data = [
|
|
|
'token' => $token->toString(),
|
|
|
'exp' => $jwt->getTTL($token->toString()),
|
|
|
];
|
|
|
return Result::success($data);
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* @return void
|
|
|
*/
|