diff --git a/app/Endpoint/Api/Http/Controllers/Auth/SocialiteAuthController.php b/app/Endpoint/Api/Http/Controllers/Auth/SocialiteAuthController.php index c4b11b97..e1caa91f 100644 --- a/app/Endpoint/Api/Http/Controllers/Auth/SocialiteAuthController.php +++ b/app/Endpoint/Api/Http/Controllers/Auth/SocialiteAuthController.php @@ -104,6 +104,27 @@ class SocialiteAuthController extends Controller ]); } + /** + * 第三方登录的解绑 + * + * @param [type] $provider + * @param Request $request + */ + public function unbindUser($provider, Request $request) + { + if ($user = $request->user()) { + //解绑三方的关系 + SocialiteUser::where([ + 'user_id' => $user->id, + 'socialite_type' => $provider, + ])->update([ + 'user_id' => null, + ]); + } + + return response()->noContent(); + } + /** * [目前支持:微信小程序] */ @@ -222,8 +243,11 @@ class SocialiteAuthController extends Controller break; } } - //解绑以前的关系 - SocialiteUser::where('user_id', $user->id)->update([ + //解绑对应三方以前的关系 + SocialiteUser::where([ + 'user_id' => $user->id, + 'socialite_type' => $socialite['socialite_type'], + ])->update([ 'user_id' => null, ]); //绑定用户和三方信息关系 diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 0aa1b0dd..ee6afac7 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -92,6 +92,7 @@ Route::group([ ], function () { Route::post('code-auth/{provider}', [Auth\SocialiteAuthController::class, 'codeAuth']); Route::post('code-bind-user/{provider}', [Auth\SocialiteAuthController::class, 'codeBindUser']); + Route::post('unbind-user/{provider}', [Auth\SocialiteAuthController::class, 'unbindUser']); }); Route::middleware(['auth:api'])->group(function () {