12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- namespace app\admin\service\user;
- use app\model\SysUser;
- use support\Db;
- use Tinywan\Jwt\JwtToken;
- class AuthService
- {
- public static function login($params)
- {
- DB::beginTransaction();
- try {
- $user = SysUser::findByLoginName($params['username']);
- if (!$user || $user->user_login_pass != md5(sha1($params['password']))) {
- throw new \Exception('账号 / 密码错误');
- }
- // 禁用用户
- if ($user->user_status == 'DISABLED') {
- throw new \Exception('当前账户已禁用,请联系管理员');
- }
- switch ($user->user_status) {
- case 'DISABLED':
- throw new \Exception('当前账户已禁用,请联系管理员');
- break;
- case 'PENDING':
- // 待激活用户登录后自动激活
- if (SysUser::where('user_id', $user->user_id)->update(['user_status' => 'ACTIVED'])) {
- throw new \Exception('用户状态修改失败');
- }
- break;
- default:
- break;
- }
- $extend = [
- 'id' => $user->user_id,
- 'client' => 'admin'
- ];
- $token = JwtToken::generateToken($extend);
- // 提交事务
- DB::commit();
- return json_success('', $token);
- } catch (\Exception $e) {
- // 回滚事务
- DB::rollBack();
- return json_fail($e->getMessage());
- }
- }
- }
|