- 基础环境:Docker 部署配置,源码挂载实时同步 - 修复:super_admin 权限补全、登录重定向循环 - 开发:店铺营销账户账单 - 抖音账户(15字段汇总账单) - 开发:店铺营销账户账单 - 淘系支付宝账户(8字段流水账单) - 开发:店铺营销账户账单 - 拼多多账户(7字段流水账单) - 业务页面导航集成:config/business_navigation.php + Business\Pages 控制器 - 各平台独立表结构和视图,互不影响
49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use Closure;
|
|
use Illuminate\Auth\AuthenticationException;
|
|
use Illuminate\Auth\Middleware\Authenticate as Middleware;
|
|
use Illuminate\Http\Request;
|
|
|
|
class Authenticate extends Middleware
|
|
{
|
|
/**
|
|
* Handle an incoming request.
|
|
*
|
|
* When the request carries a Bearer token but authentication fails, return
|
|
* an RFC 6750 compliant error payload instead of the generic "Unauthenticated".
|
|
*/
|
|
public function handle($request, Closure $next, ...$guards)
|
|
{
|
|
try {
|
|
return parent::handle($request, $next, ...$guards);
|
|
} catch (AuthenticationException $e) {
|
|
if ($request->bearerToken()) {
|
|
return response()->json([
|
|
'error' => 'invalid_token',
|
|
'error_description' => 'The access token provided is expired, revoked, malformed, or invalid.',
|
|
], 401, [
|
|
'WWW-Authenticate' => 'Bearer error="invalid_token", error_description="Invalid or expired token"',
|
|
]);
|
|
}
|
|
|
|
throw $e;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the path the user should be redirected to when they are not authenticated.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return string|null
|
|
*/
|
|
protected function redirectTo($request)
|
|
{
|
|
if (!$request->expectsJson()) {
|
|
return route('login');
|
|
}
|
|
}
|
|
}
|