|
@@ -243,7 +243,7 @@ class LoginLogic extends BaseLogic
|
|
|
* @return array|false
|
|
* @return array|false
|
|
|
*
|
|
*
|
|
|
*/
|
|
*/
|
|
|
- public static function mnpPhoneCode(array $params)
|
|
|
|
|
|
|
+ public static function mnpSessionKey(array $params)
|
|
|
{
|
|
{
|
|
|
Db::startTrans();
|
|
Db::startTrans();
|
|
|
try {
|
|
try {
|
|
@@ -258,6 +258,71 @@ class LoginLogic extends BaseLogic
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 小程序-手机号授权一键登录
|
|
|
|
|
+ * @param $params
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ * @author 段誉
|
|
|
|
|
+ * @date 2022/9/6 19:26
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function mnpPhoneLogin(array $params)
|
|
|
|
|
+ {
|
|
|
|
|
+ try {
|
|
|
|
|
+ $where = ['mobile' => $params['mobile']];
|
|
|
|
|
+ $params['account'] = $params['mobile'];
|
|
|
|
|
+ $user = User::where($where)->findOrEmpty();
|
|
|
|
|
+
|
|
|
|
|
+ //先检查openid是否有记录
|
|
|
|
|
+ $isAuth = UserAuth::where('openid', '=', $params['openid'])->findOrEmpty();
|
|
|
|
|
+ if (!$isAuth->isEmpty() && !$user->isEmpty()) {
|
|
|
|
|
+ $authUser = UserAuth::where('user_id', '=', $user['id'])->findOrEmpty();
|
|
|
|
|
+ if($isAuth->user_id != $authUser->user_id) {
|
|
|
|
|
+ throw new \Exception('该微信已被绑定');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($user->isEmpty()) {
|
|
|
|
|
+ //直接注册用户
|
|
|
|
|
+ $params['channel'] = 1;
|
|
|
|
|
+ $user = self::register($params);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //更新登录信息
|
|
|
|
|
+ $user->login_time = time();
|
|
|
|
|
+ $user->login_ip = request()->ip();
|
|
|
|
|
+ $user->save();
|
|
|
|
|
+
|
|
|
|
|
+ if($isAuth->isEmpty()){
|
|
|
|
|
+ UserAuth::create([
|
|
|
|
|
+ 'user_id' => $user->id,
|
|
|
|
|
+ 'openid' => $params['openid'],
|
|
|
|
|
+ 'unionid' => $params['unionid'] ?? '',
|
|
|
|
|
+ 'terminal' => 1,
|
|
|
|
|
+ ]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(!$isAuth->isEmpty() && $isAuth->user_id==0){
|
|
|
|
|
+ $isAuth->user_id = $user->id;
|
|
|
|
|
+ $isAuth->save();
|
|
|
|
|
+ }
|
|
|
|
|
+ $userInfo = UserTokenService::setToken($user->id, 1);
|
|
|
|
|
+
|
|
|
|
|
+ //返回登录信息
|
|
|
|
|
+ $avatar = $user->avatar ?: Config::get('project.default_image.user_avatar');
|
|
|
|
|
+ $avatar = FileService::getFileUrl($avatar);
|
|
|
|
|
+
|
|
|
|
|
+ return [
|
|
|
|
|
+ 'nickname' => $userInfo['nickname'],
|
|
|
|
|
+ 'sn' => $userInfo['sn'],
|
|
|
|
|
+ 'mobile' => $userInfo['mobile'],
|
|
|
|
|
+ 'avatar' => $avatar,
|
|
|
|
|
+ 'token' => $userInfo['token'],
|
|
|
|
|
+ ];
|
|
|
|
|
+ } catch (\Exception $e) {
|
|
|
|
|
+ self::setError($e->getMessage());
|
|
|
|
|
+ return [];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @notes 更新登录信息
|
|
* @notes 更新登录信息
|