| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- namespace App\Services\Account;
- use App\Consts\ErrorConst;
- use App\Facade\Site;
- use App\Libs\AliSMS;
- use App\Libs\Utils;
- use Illuminate\Support\Facades\DB;
- use OSS\Core\OssException;
- use OSS\OssClient;
- class AccountService
- {
- private $salt = 'bXBfYXVkaW8=';
- public function __construct() {}
- /**
- * @param $account
- * @param $passwd
- * @return array
- */
- public function login($account, $passwd): array
- {
- // 密码
- $pwd = md5($passwd . $this->salt);
- $user = DB::table('mp_manage_users')->where('account', $account)->where('pwd', $pwd)->first();
- if (!$user) {
- Utils::throwError('20003:用户不存在');
- }
- if ((int)getProp($user, 'is_enabled') === 0) {
- Utils::throwError('20003:用户已被禁用');
- }
- // 更新token
- $uid = getProp($user, 'id');
- $nickname = getProp($user, 'nickname');
- $token = getProp($user, 'token');
- if (empty($token)) {
- $token = md5(makeRandStr(32));
- DB::table('mp_manage_users')->where('id', $uid)->update([
- 'token' => $token,
- 'updated_at' => date('Y-m-d H:i:s')
- ]);
- }
- // 用户角色
- $role = getProp($user, 'role');
- return compact('uid', 'nickname', 'token', 'role');
- }
- public function userInfo(): array
- {
- $uid = Site::getUid();
- $user = DB::table('mp_manage_users')->where('id', $uid)->first();
- if (!$user) {
- Utils::throwError('20003:用户不存在');
- }
- if ((int)getProp($user, 'is_enabled') === 0) {
- Utils::throwError('20003:用户已被禁用');
- }
- // 更新token
- $uid = getProp($user, 'id');
- $nickname = getProp($user, 'nickname');
- $token = getProp($user, 'token');
- $token_expire_at = getProp($user, 'token_expire_at');
- if ($token_expire_at) $token_expire_at = transDate($token_expire_at);
- $refresh_token = getProp($user, 'refresh_token');
- $refresh_token_expires_at = getProp($user, 'refresh_token_expires_at');
- if ($refresh_token_expires_at) $refresh_token_expires_at = transDate($refresh_token_expires_at);
- // 用户角色
- $role = getProp($user, 'role');
- $points = getProp($user, 'points');
- return compact('uid', 'nickname', 'token', 'token_expire_at', 'refresh_token', 'refresh_token_expires_at', 'role', 'points');
- }
- /**
- * 退出登录
- *
- * @param $token
- * @return bool
- */
- public function logout($token): bool
- {
- if (empty($token)) {
- return true;
- }
- // 退出不影响多设备
- return DB::table('mp_manage_users')->where('token', $token)->update([
- 'updated_at' => date('Y-m-d H:i:s')
- ]);
- }
- }
|