|
@@ -38,9 +38,7 @@ class AuthController extends Controller
|
|
return $this->error('账号或密码错误');
|
|
return $this->error('账号或密码错误');
|
|
}
|
|
}
|
|
|
|
|
|
- $app = Factory::miniProgram(config('wechat.mini_program.default'));
|
|
|
|
- $data = $app->auth->session($req['code']);
|
|
|
|
- $user = User::where('open_id',$data['openid'])->first();
|
|
|
|
|
|
+ $user = $this->checkUser();
|
|
$user->account_id = $account->id;
|
|
$user->account_id = $account->id;
|
|
$user->save();
|
|
$user->save();
|
|
|
|
|
|
@@ -57,30 +55,6 @@ class AuthController extends Controller
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public function wechatMiniCode(Request $request): JsonResponse
|
|
|
|
- {
|
|
|
|
- try {
|
|
|
|
- $req = $request->post();
|
|
|
|
- $this->validate($request, [
|
|
|
|
- 'code' => 'required',
|
|
|
|
- ]);
|
|
|
|
- $app = Factory::miniProgram(config('wechat.mini_program.default'));
|
|
|
|
- $data = $app->auth->session($req['code']);
|
|
|
|
- $user = User::where('open_id',$data['openid'])->first();
|
|
|
|
- if(!$user){
|
|
|
|
- $user = new User();
|
|
|
|
- $user->open_id = $data['openid'];
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- $user->remember_token = $data['session_key'];
|
|
|
|
- $user->save();
|
|
|
|
-
|
|
|
|
- return $this->success();
|
|
|
|
- }catch (\Exception $ex){
|
|
|
|
- return $this->error($ex->getMessage());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public function wechatMiniPhone(Request $request)
|
|
public function wechatMiniPhone(Request $request)
|
|
{
|
|
{
|
|
try{
|
|
try{
|
|
@@ -90,10 +64,13 @@ class AuthController extends Controller
|
|
'iv' => 'required',
|
|
'iv' => 'required',
|
|
]);
|
|
]);
|
|
$app = Factory::miniProgram(config('wechat.mini_program.default'));
|
|
$app = Factory::miniProgram(config('wechat.mini_program.default'));
|
|
- $data = $app->auth->session($req['code']);
|
|
|
|
- $user = User::where('open_id',$data['openid'])->first();
|
|
|
|
|
|
+ $user = $this->checkUser();
|
|
|
|
|
|
- $decryptedData = $app->encryptor->decryptData($data['session_key'], $req['iv'], $req['encryptedData']);
|
|
|
|
|
|
+ $decryptedData = $app->encryptor->decryptData(
|
|
|
|
+ $user->remember_token,
|
|
|
|
+ $req['iv'],
|
|
|
|
+ $req['encryptedData']
|
|
|
|
+ );
|
|
$account = Account::where('account', $decryptedData['phoneNumber'])
|
|
$account = Account::where('account', $decryptedData['phoneNumber'])
|
|
->where('status', 1)
|
|
->where('status', 1)
|
|
->first();
|
|
->first();
|
|
@@ -101,8 +78,6 @@ class AuthController extends Controller
|
|
return $this->error('没有找到相关账号');
|
|
return $this->error('没有找到相关账号');
|
|
}
|
|
}
|
|
|
|
|
|
- $user = User::where('id', $user['id'])->first();
|
|
|
|
- $user->remember_token = $data['session_key'];
|
|
|
|
if($user->mobile != $decryptedData['phoneNumber']) {
|
|
if($user->mobile != $decryptedData['phoneNumber']) {
|
|
$user->mobile = $decryptedData['phoneNumber'];
|
|
$user->mobile = $decryptedData['phoneNumber'];
|
|
$user->account_id = $account->id;
|
|
$user->account_id = $account->id;
|
|
@@ -123,5 +98,27 @@ class AuthController extends Controller
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @return User|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object|null
|
|
|
|
+ * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
|
|
|
|
+ */
|
|
|
|
+ private function checkUser()
|
|
|
|
+ {
|
|
|
|
+ $req = \request()->post();
|
|
|
|
+
|
|
|
|
+ $app = Factory::miniProgram(config('wechat.mini_program.default'));
|
|
|
|
+ $data = $app->auth->session($req['code']);
|
|
|
|
+ $user = User::where('open_id', $data['openid'])->first();
|
|
|
|
+ if(!$user){
|
|
|
|
+ $user = new User();
|
|
|
|
+ $user->open_id = $data['openid'];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $user->remember_token = $data['session_key'];
|
|
|
|
+ $user->save();
|
|
|
|
+
|
|
|
|
+ return $user;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|