【问题标题】:Laravel passport - logout user via apiLaravel 护照 - 通过 api 注销用户
【发布时间】:2019-12-10 02:16:34
【问题描述】:

我正在运行一个带有登录页面的 laravel API 和一个通过 oauth 对用户进行身份验证的 nuxt.js 应用程序。

整个授权流程正在运行,但在 nuxt.js 应用程序中成功注销后,用户在进一步登录时不再被要求提供用户凭据。

我如何管理用户在下次登录时再次被要求提供凭据?

问题类似于this,但我不想删除任何授权令牌,我希望用户再次登录。

我已经在我的 api 中创建了一个自定义端点,但它似乎不起作用:

    public function logoutApi()
    {
        Auth::guard('web')->logout();
        $cookie = \Cookie::forget('laravel_session');
        \Session::flush();

        return response('User has been logged out.')->cookie($cookie);
    }

有什么想法吗?

【问题讨论】:

  • 为什么不想删除授权令牌?
  • 到目前为止,我知道删除身份验证令牌是 oauth 流程的一部分
  • @fez 因为如果我删除身份验证令牌,用户只需再次单击“授权”按钮,而不是完全登录
  • 顺便说一句 session::flush 将删除所有用户访问权限

标签: laravel nuxt.js laravel-passport


【解决方案1】:

这将撤销用户对令牌的访问权限,但不会删除令牌

if (Auth::check()) {
    $user = Auth::user()->token();
    $user->revoke();
}

【讨论】:

  • 还需要use Illuminate\Support\Facades\Auth;
猜你喜欢
  • 2020-09-03
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
相关资源
最近更新 更多