| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | <?phpnamespace 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());        }    }}
 |