| xqd
@@ -32,44 +32,49 @@ class AuthController extends BaseController
|
|
|
//将这一步的通过微信授权登陆改为直接手机授权登陆
|
|
|
public function loginByWechat(Request $request)
|
|
|
{
|
|
|
- $app = app('wechat.mini_program');
|
|
|
+// $app = app('wechat.mini_program');
|
|
|
+ $config = [
|
|
|
+ 'app_id' => env('WECHAT_MINI_PROGRAM_APPID', ''),
|
|
|
+ 'secret' => env('WECHAT_MINI_PROGRAM_SECRET', ''),
|
|
|
+ ];
|
|
|
+ $app = Factory::miniProgram($config);
|
|
|
+
|
|
|
$session_key = $request->input('session_key');
|
|
|
if(!$session_key && $request->input('code')) {
|
|
|
$res = $app->auth->session($request->input('code'));
|
|
|
+ if (empty($res['openid']) || empty($res['session_key'])){
|
|
|
+ return $this->error(['msg' => '微信code错误']);
|
|
|
+ }
|
|
|
if(isset($res['session_key'])) $session_key = $res['session_key'];
|
|
|
}
|
|
|
if($session_key) {
|
|
|
$data = $app->encryptor->decryptData($session_key, $request->input('iv'), $request->input('encryptedData'));
|
|
|
+ Log::info('info'.json_encode($data));
|
|
|
+
|
|
|
if(isset($data['phoneNumber'])) {
|
|
|
$user = Auth::guard('mini')->user();
|
|
|
//在数据库中若存在该手机号码的数据需要update进行修改数据、若不存在需要向数据库中添加数据
|
|
|
- $phone = User::where("phone","=",$data['phoneNumber'])->first();
|
|
|
- if(!empty($phone)){
|
|
|
+ $user = User::where("phone","=",$data['phoneNumber'])->first();
|
|
|
+
|
|
|
+ if(!empty($user) && !empty($user->phone)){
|
|
|
//存在手机号码直接修改
|
|
|
- User::where('phone',$data['phoneNumber'] )->update([
|
|
|
- [
|
|
|
- 'open_id' => $data['openId']
|
|
|
- ], [
|
|
|
- 'name' => $data['nickName'],
|
|
|
- 'nickname' => $data['nickName'],
|
|
|
- 'avatar' => $data['avatarUrl']
|
|
|
- ]
|
|
|
- ]);
|
|
|
- return $this->error(['msg' => '后台已经存在这个手机号码了,请换一个手机号码绑定']);
|
|
|
+ User::where('open_id',$res['openid'] )->update(['phone' => $data['phoneNumber']]);
|
|
|
+ $user->updateToken();
|
|
|
+ $user = $user->getUserInfo($session_key);
|
|
|
+ return $this->success(['data' => $user]);
|
|
|
+// return $this->error(['msg' => '后台已经存在这个手机号码了,请换一个手机号码绑定']);
|
|
|
}
|
|
|
//不存在手机号码直接添加数据
|
|
|
$user = User::firstOrCreate([
|
|
|
- 'open_id' => $data['openId']
|
|
|
+ 'open_id' => $res['openid']
|
|
|
], [
|
|
|
'phone' => $data['phoneNumber'],
|
|
|
- 'name' => $data['nickName'],
|
|
|
- 'nickname' => $data['nickName'],
|
|
|
- 'avatar' => $data['avatarUrl']
|
|
|
]);
|
|
|
$user = $user->getUserInfo($session_key);
|
|
|
return $this->success(['data' => $user]);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
return $this->error(['msg' => '获取失败']);
|
|
|
}
|
|
|
return $this->error(['msg' => '获取失败']);
|