From d49df32143a2347b3676a085fc8923823d30294c Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Mon, 28 Nov 2022 23:58:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Web/AuthController.php | 20 +++++--- resources/views/confirm_redirect.blade.php | 56 +++++++++++++++++++++ routes/web.php | 1 + 3 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 resources/views/confirm_redirect.blade.php diff --git a/app/Http/Controllers/Web/AuthController.php b/app/Http/Controllers/Web/AuthController.php index 707f03a..ae19726 100644 --- a/app/Http/Controllers/Web/AuthController.php +++ b/app/Http/Controllers/Web/AuthController.php @@ -27,14 +27,12 @@ public function index(Request $request) // if logged in if ($request->callback) { + session(['callback' => $request->callback]); + + if (Auth::check()) { - - // create token - $token = $request->user()->createToken('Auto login at ' . now()); - - return redirect($request->callback . '?token=' . $token->plainTextToken); + return redirect()->route('confirm_redirect'); } else { - session(['callback' => $request->callback]); return redirect()->route('login'); } } @@ -42,6 +40,16 @@ public function index(Request $request) return view('index'); } + public function confirm_redirect(Request $request) + { + // create token + + $callback = $request->callback ?? session('callback'); + + + return view('confirm_redirect', compact('callback')); + } + public function redirect(Request $request) { $request->session()->put('state', $state = Str::random(40)); diff --git a/resources/views/confirm_redirect.blade.php b/resources/views/confirm_redirect.blade.php new file mode 100644 index 0000000..427c285 --- /dev/null +++ b/resources/views/confirm_redirect.blade.php @@ -0,0 +1,56 @@ +@extends('layouts.app') + +@section('title', '确认') + +@section('content') + + @if (session('callback')) + + @if(session('token')) + +

带你去目标站点...

+ + +
+ @csrf + @method('delete') +

如果您反悔了,您还可以吊销全部 Token。

+ +
+ + @php + session()->forget('callback'); + @endphp + + + @else + +

您确定吗?

+

一个应用程序正在试图自动获取您的 Token, 诺您信任它,请点击"好"。

+ +

您点击"好"后,您将前往这个地址: {{ $callback }}

+ + +
+ @csrf + + + + 不,带我去首页。 + +
+ + @endif + @else + +

嗯...还没有快捷登录。

+

您可以返回应用重试登录,或者继续做您的事情。

+ + @endif + +@endsection diff --git a/routes/web.php b/routes/web.php index edaba6a..4cb0edf 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,6 +9,7 @@ Route::view('banned', 'banned')->name('banned')->withoutMiddleware('banned'); Route::post('logout', [AuthController::class, 'logout'])->name('logout')->withoutMiddleware('banned'); + Route::get('confirm_redirect', [AuthController::class, 'confirm_redirect'])->name('confirm_redirect'); Route::post('newToken', [AuthController::class, 'newToken'])->name('newToken'); Route::delete('deleteAll', [AuthController::class, 'deleteAll'])->name('deleteAll');