gpt4 book ai didi

php - Laravel 注销,添加一个监听器

转载 作者:行者123 更新时间:2023-12-04 14:47:59 26 4
gpt4 key购买 nike

我正在尝试为我们现有的 laravel 站点(laravel 5.2)的注销功能添加一些逻辑,但它不像登录那样简单。

客户端的现有注销工作正常,但我想要做的就是向我的 Cognito 实例添加一个调用,以将用户从他们的 Cognito session 中注销。基本上,当用户单击注销时,我想将他们从网站上注销,因为它已经这样做了,但也点击了我的注销端点以进行 cognito

我的困惑来自这样一个事实,即用于身份验证的现有路由和 Controller 并不完全匹配。

route.api.php

Route::get('logout', 'API\Auth\AuthController@getLogout');

route.auth.php
Route::get('logout', 'Auth\AuthController@getLogout')
->name('auth.logout');

Auth/AuthController.php (在我的构造函数中)
$this->middleware('guest', ['except' => 'getLogout']);

我的登出链接点击 site/logout它肯定会注销用户,但我想将我的调用放在正确的位置。我还想确保在成功注销时刷新或销毁 session

最近有人告诉我,我可能(并且可能应该)为注销事件添加一个监听器并在那里打电话。

在这种情况下,我究竟会怎么做,它到底会去哪里?

最佳答案

在您的 EventServiceProvider您可以将监听器附加到注销事件并处理监听器中的所有注销逻辑。

protected $listen = [
'Illuminate\Auth\Events\Logout' => [
'App\Listeners\LogSuccessfulLogout',
],
];

然后你可以在 App\Listeners 中创建你的 LogSuccessfulLogout 监听器:
    namespace App\Listeners;
use Illuminate\Auth\Events\Logout;

class LogSuccessfulLogout
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}

/**
* Handle the event.
*
* @param Logout $event
* @return void
*/
public function handle(Logout $event)
{
// Do your logic
}
}

来源: https://laravel.com/docs/5.2/authentication#events

关于php - Laravel 注销,添加一个监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55102690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com