增加 API Token
This commit is contained in:
parent
8459e3ac64
commit
694fb378f0
13
.env.example
13
.env.example
@ -16,10 +16,10 @@ DB_USERNAME=root
|
|||||||
DB_PASSWORD=
|
DB_PASSWORD=
|
||||||
|
|
||||||
BROADCAST_DRIVER=log
|
BROADCAST_DRIVER=log
|
||||||
CACHE_DRIVER=file
|
CACHE_DRIVER=redis
|
||||||
FILESYSTEM_DISK=local
|
FILESYSTEM_DISK=local
|
||||||
QUEUE_CONNECTION=sync
|
QUEUE_CONNECTION=redis
|
||||||
SESSION_DRIVER=file
|
SESSION_DRIVER=redis
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
|
|
||||||
MEMCACHED_HOST=127.0.0.1
|
MEMCACHED_HOST=127.0.0.1
|
||||||
@ -56,3 +56,10 @@ VITE_PUSHER_HOST="${PUSHER_HOST}"
|
|||||||
VITE_PUSHER_PORT="${PUSHER_PORT}"
|
VITE_PUSHER_PORT="${PUSHER_PORT}"
|
||||||
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
|
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
|
||||||
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||||
|
|
||||||
|
OAUTH_REDIRECT_URI=http://frp.test/auth/callback
|
||||||
|
OAUTH_CLIENT_ID=7
|
||||||
|
OAUTH_CLIENT_SECRET=pkLhb8AwxfrKTqjROcgKbEEgtgTieYRatjlsdbYN
|
||||||
|
OAUTH_DOMAIN=http://oauth.test
|
||||||
|
|
||||||
|
API_TOKEN=123456
|
||||||
|
61
app/Http/Middleware/ApiToken.php
Normal file
61
app/Http/Middleware/ApiToken.php
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
|
||||||
|
class ApiToken
|
||||||
|
{
|
||||||
|
public function handle(Request $request, Closure $next)
|
||||||
|
{
|
||||||
|
// add json header
|
||||||
|
$request->headers->set('Accept', 'application/json');
|
||||||
|
|
||||||
|
// bearer token
|
||||||
|
if (! $request->hasHeader('Authorization')) {
|
||||||
|
return $this->unauthorized();
|
||||||
|
}
|
||||||
|
|
||||||
|
$token = $request->bearerToken();
|
||||||
|
|
||||||
|
$config_token = config('app.api_token');
|
||||||
|
|
||||||
|
if ($config_token == null) {
|
||||||
|
return $this->unauthorized();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($token !== $config_token) {
|
||||||
|
return $this->unauthorized();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->user_id) {
|
||||||
|
$user = User::where('id', $request->user_id)->first();
|
||||||
|
// if user null
|
||||||
|
if (! $user) {
|
||||||
|
$http = Http::remote('remote')->asForm();
|
||||||
|
$user = $http->get('/users/'.$request->user_id)->json();
|
||||||
|
|
||||||
|
$user = User::create([
|
||||||
|
'id' => $user['id'],
|
||||||
|
'name' => $user['name'],
|
||||||
|
'email' => $user['email'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
Auth::guard('user')->login($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function unauthorized()
|
||||||
|
{
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Unauthorized.',
|
||||||
|
], 401);
|
||||||
|
}
|
||||||
|
}
|
@ -18,6 +18,8 @@
|
|||||||
'name' => env('APP_NAME', 'Laravel'),
|
'name' => env('APP_NAME', 'Laravel'),
|
||||||
'display_name' => env('APP_DISPLAY_NAME', 'Laravel'),
|
'display_name' => env('APP_DISPLAY_NAME', 'Laravel'),
|
||||||
|
|
||||||
|
'api_token' => env('API_TOKEN', null),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Application Environment
|
| Application Environment
|
||||||
|
Loading…
Reference in New Issue
Block a user