【问题标题】:laravel jwt auth, set custom responselaravel jwt auth,设置自定义响应
【发布时间】:2020-10-02 17:13:28
【问题描述】:

配置/auth.php

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
        'hash' => false,
    ],
],

每当我使用过期令牌调用 api 方法时,我都会得到:

据我了解,如果您在配置中设置保护驱动程序,laravel 会自动处理身份验证错误。但是我怎样才能自定义这个返回消息,以便客户端只能看到消息。我不希望他看到整个堆栈跟踪。

UPD:Laravel 版本:7

【问题讨论】:

    标签: php laravel jwt-auth


    【解决方案1】:

    这个异常可以在App/Exceptions/Handler.php中处理

    /**
     * Report or log an exception.
     *
     * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
     *
     * @param  \Exception  $e
     * @return void
     */
    public function report(Exception $e)
    {
        if ($e instanceof CustomException) {
            //
        }
    
        return parent::report($e);
    }
    

    对于您的情况,将此条件添加到报告功能中:

    if ($e instanceof Tymon\JWTAuth\Exceptions\TokenExpiredException) {
                return response()->json(['token_expired'], $e->getStatusCode());
            }
    

    【讨论】:

    • 你可以试试用 UnauthorizedHttpException 改变 TokenExpiredException
    【解决方案2】:

    我只需要关闭 APP_DEBUG。 附: 捂脸对不起,大家))。

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2021-02-02
      • 2015-09-21
      • 2020-08-05
      • 1970-01-01
      • 2017-07-29
      • 2019-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多