我应该如何称呼“ session()-> forget('data')”?

时间:2019-09-27 08:23:25

标签: database laravel session

我有一个功能,可以在用户没有当前会话的情况下存储数据。

cstring

有人说,当用户注销时,我应该删除会话数据

Broadcast::channel('chat', function ($user) {
    $ip = Request::ip();
    $time = now();

     if (auth()->check() && !session()->has('name'))  { 
         UserInfo::storeUser();
          session()->put('name',$user->name);
            return [
                'id' => $user->id,
                'ip' => $ip,
                'name' => $user->name,
                'joined' => $time,
            ];
        }
    });

所以我在LoginController中创建了此功能

session()->forget('name');

我这样称呼它

public function logout() {
   session()->forget('name');
 }

我的结果

我尝试注销时看到空白页。

因此,恐怕我不明白如何正确编写此函数或在哪里调用它会从会话中删除数据。

1 个答案:

答案 0 :(得分:1)

无论何时您希望用户注销,都需要在经过身份验证的用户上调用logout方法,然后将其重定向到您希望他们登录的任何页面。通常,它是应用程序的欢迎页面。

您需要将logout()方法的内容替换为以下内容:

/**
 * Logout the user and redirect them to the welcome page.
 *
 * @return  \Illuminate\Http\RedirectRespose
 */
public function logout()
{
    auth()->logout();

    session()->forget('name');

    return redirect('/');
}