改进 拿的 Token 具有全部权限
This commit is contained in:
parent
777e028aea
commit
3f3d6efe61
@ -6,15 +6,14 @@
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Notifications\User\UserNotification;
|
||||
use App\Rules\Domain;
|
||||
use function back;
|
||||
use function config;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\View\View;
|
||||
use function back;
|
||||
use function config;
|
||||
use function redirect;
|
||||
use function session;
|
||||
use function view;
|
||||
@ -34,13 +33,13 @@ public function index(Request $request): View|RedirectResponse
|
||||
$dashboardHost = parse_url(config('settings.dashboard.base_url'), PHP_URL_HOST);
|
||||
|
||||
if ($callbackHost === $dashboardHost) {
|
||||
if (! $request->user('web')->isRealNamed()) {
|
||||
if (!$request->user('web')->isRealNamed()) {
|
||||
return redirect()->route('real_name.create')->with('status', '重定向已被打断,需要先实人认证。');
|
||||
}
|
||||
|
||||
$token = $request->user()->createToken('Dashboard')->plainTextToken;
|
||||
|
||||
return redirect($callback.'?token='.$token);
|
||||
return redirect($callback . '?token=' . $token);
|
||||
}
|
||||
|
||||
session(['referer.domain' => parse_url($request->header('referer'), PHP_URL_HOST)]);
|
||||
@ -85,18 +84,10 @@ public function newToken(Request $request): RedirectResponse
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string|max:255',
|
||||
'domain' => ['nullable', 'string', 'max:255', new Domain],
|
||||
]);
|
||||
|
||||
$abilities = [];
|
||||
|
||||
if ($request->has('domain')) {
|
||||
$abilities = ['domain-access:'.$request->input('domain')];
|
||||
}
|
||||
|
||||
$token = $request->user()->createToken(
|
||||
$request->input('name'),
|
||||
$abilities
|
||||
);
|
||||
|
||||
return back()->with('token', $token->plainTextToken);
|
||||
@ -130,7 +121,7 @@ public function exitSudo(): RedirectResponse
|
||||
|
||||
public function showAuthRequest($token): View|RedirectResponse
|
||||
{
|
||||
$data = Cache::get('auth_request:'.$token);
|
||||
$data = Cache::get('auth_request:' . $token);
|
||||
|
||||
if (empty($data)) {
|
||||
return redirect()->route('index')->with('error', '登录请求的 Token 不存在或已过期。');
|
||||
@ -154,7 +145,7 @@ public function storeAuthRequest(Request $request): RedirectResponse
|
||||
'token' => 'required|string|max:128',
|
||||
]);
|
||||
|
||||
$data = Cache::get('auth_request:'.$request->input('token'));
|
||||
$data = Cache::get('auth_request:' . $request->input('token'));
|
||||
|
||||
if (empty($data)) {
|
||||
return back()->with('error', '登录请求的 Token 不存在或已过期。');
|
||||
@ -178,7 +169,7 @@ public function storeAuthRequest(Request $request): RedirectResponse
|
||||
$data['token'] = $user->createToken($data['meta']['description'] ?? Carbon::now()->toDateString(), $abilities)->plainTextToken;
|
||||
}
|
||||
|
||||
Cache::put('auth_request:'.$request->input('token'), $data, 60);
|
||||
Cache::put('auth_request:' . $request->input('token'), $data, 60);
|
||||
|
||||
return redirect()->route('index')->with('success', '登录请求已确认。');
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
@php
|
||||
session()->forget('callback');
|
||||
session()->forget('referer.domain');
|
||||
// session()->forget('referer.domain');
|
||||
@endphp
|
||||
|
||||
<script>
|
||||
@ -40,9 +40,9 @@
|
||||
<input type="hidden" name="name" placeholder="Token 名字"
|
||||
value="自动登录 - {{ date('Y-m-d H:i:s') }}"/>
|
||||
|
||||
@if($referer_host)
|
||||
<input type="hidden" name="domain" value="{{ $referer_host }}"/>
|
||||
@endif
|
||||
{{-- @if($referer_host)--}}
|
||||
{{-- <input type="hidden" name="domain" value="{{ $referer_host }}"/>--}}
|
||||
{{-- @endif--}}
|
||||
|
||||
<button type="submit" class="btn btn-primary">授权</button>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user