編輯您的資訊
-更新用戶詳細資訊
-diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php index 5cc65fb..b4ba140 100644 --- a/app/Http/Controllers/LoginController.php +++ b/app/Http/Controllers/LoginController.php @@ -48,9 +48,9 @@ public function handleProviderCallback(Request $request) $user = Socialite::driver('line')->user(); Log::info('line', ['user' => $user]); $lineId = $user->getId(); - $name = $user->getName(); + $name = $user->getName(); $avatar = $user->getAvatar() ?? ''; - $email = $user->getEmail() ?? ''; + $email = $user->getEmail() ?? ''; Log::info('email', [$email]); @@ -64,12 +64,12 @@ public function handleProviderCallback(Request $request) Auth::guard('web')->login($existingUser); } else { $newUser = User::create([ - 'name' => $name, - 'line_id' => $lineId, + 'name' => $name, + 'line_id' => $lineId, 'password' => bcrypt(env('DEFAULT_PASSWORD')), - 'avatar' => $avatar, - 'source' => 'cafeg', - 'email' => $email, + 'avatar' => $avatar, + 'source' => 'cafeg', + 'email' => $email, ]); Auth::guard('web')->login($newUser); } @@ -87,12 +87,13 @@ public function handleProviderCallback(Request $request) Auth::guard('member')->login($existingUser); } else { $newUser = Member::create([ - 'name' => $name, - 'line_id' => $lineId, + 'name' => $name, + 'line_id' => $lineId, 'password' => bcrypt(env('DEFAULT_PASSWORD')), - 'avatar' => $avatar, - 'source' => 'cafeg', - 'email' => $email, + 'source' => 'cafeg', + 'avatar' => $avatar, + + 'email' => $email, ]); Auth::guard('member')->login($newUser); } @@ -138,4 +139,39 @@ public function memberNormalLogin(Request $request) return redirect()->route('front.login.view')->with('error', '帳號密碼錯誤'); } } + + // 重定向到 Google + public function redirectToGoogle() + { + return Socialite::driver('google')->redirect(); + } + + // 處理 Google 回調 + public function handleGoogleCallback() + { + try { + $googleUser = Socialite::driver('google')->stateless()->user(); + + // 查找或創建用戶 + $user = Member::firstOrCreate( + ['email' => $googleUser->getEmail()], + [ + 'name' => $googleUser->getName(), + 'google_id' => $googleUser->getId(), + 'avatar' => $googleUser->getAvatar(), + 'password' => bcrypt(env('DEFAULT_PASSWORD')), + 'source' => 'cafeg', + ] + ); + \Log::info('google Oauth :', [$user]); + + + // 登入用戶 + Auth::guard('member')->login($user, true); + + return redirect()->route('member.index'); // 登入後跳轉的路徑 + } catch (\Exception $e) { + return redirect('/')->with('error', '無法進行 Google 登入'); + } + } } diff --git a/app/Http/Controllers/front/MemberController.php b/app/Http/Controllers/front/MemberController.php index 57b397c..3dc851c 100644 --- a/app/Http/Controllers/front/MemberController.php +++ b/app/Http/Controllers/front/MemberController.php @@ -91,4 +91,15 @@ public function checkPhone(Request $request) return response()->json(['status' => 'success', 'msg' => '該電話號碼可用']); } + public function checkEmail(Request $request) + { + + $user = Member::where('email', $request->email)->first(); + + if ($user) { + return response()->json(['status' => 'error', 'msg' => '該email已被其他帳戶使用']); + } + + return response()->json(['status' => 'success', 'msg' => '該email號碼可用']); + } } diff --git a/app/Http/Controllers/front/RegisterController.php b/app/Http/Controllers/front/RegisterController.php index a9e8e09..a9d0d1c 100644 --- a/app/Http/Controllers/front/RegisterController.php +++ b/app/Http/Controllers/front/RegisterController.php @@ -7,7 +7,8 @@ use Exception; use App\Models\EmailVerifications; use Mail; - +use Log; +use Auth; class RegisterController extends Controller { /** @@ -45,7 +46,13 @@ public function create(Request $request) } - + /** + * Summary of forgotPassword 設定密碼頁面 + * @param mixed $id + * @param mixed $token + * @param \Illuminate\Http\Request $request + * @return mixed + */ public function forgotPassword(Request $request) { @@ -57,13 +64,13 @@ public function sendForgotPassword(Request $request) \Log::info('sendForgotPassword', []); $subject = "卡菲姬系統-密碼重新設定"; $token = \Str::random(32); - $result = Member::where('email', $request->email)->first(); + $result = Member::where('email', $request->email)->firstOrFail(); try { if (!isset($result)) { throw new Exception("找不到帳號", 404); } else { - $verificationLink = route('reset.password.token', ['token' => $token, 'id' => $result->id]); + $verificationLink = route('change.password', ['token' => $token, 'id' => $result->id]); \Log::info('sendForgotPassword go EmailVerifications', []); $res = EmailVerifications::where('email', $request->email)->first(); @@ -128,24 +135,44 @@ public function resetPassword(Request $request) } - + /** + * Summary of changePassword view + * @param $id + * @param \Illuminate\Http\Request $request + * @return mixed + */ public function changePassword(Request $request) { - return view('front.auth.confirmpassword'); + Log::info('request on changePassword : ', $request->all()); + + return view('front.auth.confirmpassword', ['id' => $request->id]); } - public function confrimPassword(Request $request) + + /** + * Summary of resetPasswordProcess + * @param mixed $id + * @method put + * @param \Illuminate\Http\Request $request + * @return mixed + */ + public function resetPasswordProcess(Request $request) { + if ($request->has('id')) { + $member = Member::where('id', $request->id)->first(); + $member->password = bcrypt($request->password); + $member->save(); + if ($member) { + EmailVerifications::where('email', $member->email)->delete(); + } - return view('front.auth.confirmpassword'); + Auth::guard('member')->login($member); - } - - public function resetPasswordProcess($id, Request $request) - { + } + return redirect()->route('member.index'); } @@ -154,7 +181,7 @@ public function resetPasswordProcess($id, Request $request) */ public function store(Request $request) { - // + } /** diff --git a/config/services.php b/config/services.php index 5c0c098..af602e7 100644 --- a/config/services.php +++ b/config/services.php @@ -34,10 +34,18 @@ 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'), ], ], + 'line' => [ 'client_id' => env('LINE_CLIENT_ID'), 'client_secret' => env('LINE_CLIENT_SECRET'), 'redirect' => env('LINE_REDIRECT_URI'), ], + 'google' => [ + 'client_id' => env('GOOGLE_CLIENT_ID'), + 'client_secret' => env('GOOGLE_CLIENT_SECRET'), + 'redirect' => env('GOOGLE_REDIRECT_URI'), + ], + + ]; diff --git a/resources/views/admin/profile/index.blade.php b/resources/views/admin/profile/index.blade.php index 22b7c6d..07fc885 100644 --- a/resources/views/admin/profile/index.blade.php +++ b/resources/views/admin/profile/index.blade.php @@ -115,7 +115,7 @@ class="input-group-text cursor-pointer" class="form-control" placeholder="確認密碼" aria-label="確認密碼" - value="{{$data->password ?? ''}}" + value=" " /> @@ -218,7 +218,7 @@ class="btn btn-outline-secondary" - +{{-- --}} diff --git a/resources/views/front/auth/confirmpassword.blade.php b/resources/views/front/auth/confirmpassword.blade.php index 49d3781..eaa72f2 100644 --- a/resources/views/front/auth/confirmpassword.blade.php +++ b/resources/views/front/auth/confirmpassword.blade.php @@ -105,6 +105,7 @@ +