如何区分登录状态下进行登录和注册,并设定不同的闪存进行提醒?

如题所示,如果按照教程所写的,修改app\Http\Middleware\RedirectIfAuthenticated.php

<?php
namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            session()->flash('info','您已登陆,无需再次操作');
            return redirect('/');//<——修改这里
        }
        return $next($request);
    }
}

如果这样修改的话,在登录状态下进行注册的同样会返回,已经登录的信息,如下图所示
例子

很显然这是不妥的,应该如果进行判断,区分登录和注册,并且进行分别不同形式的提醒?

本帖已被设为精华帖!
本帖由系统于 4年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
Summer
最佳答案

可以利用 Requestis 方法来判断 URL:

    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            $message = $request->is('signup') ? '您已注册并已登录!' : '您已登陆,无需再次操作';
            session()->flash('info', $message);
            return redirect('/');//<——修改这里
        }
        return $next($request);
    }
6年前 评论
讨论数量: 8
Summer

可以利用 Requestis 方法来判断 URL:

    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            $message = $request->is('signup') ? '您已注册并已登录!' : '您已登陆,无需再次操作';
            session()->flash('info', $message);
            return redirect('/');//<——修改这里
        }
        return $next($request);
    }
6年前 评论
Summer

可以利用 Requestis 方法来判断 URL:

    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            $message = $request->is('signup') ? '您已注册并已登录!' : '您已登陆,无需再次操作';
            session()->flash('info', $message);
            return redirect('/');//<——修改这里
        }
        return $next($request);
    }
6年前 评论
if (Auth::guard($guard)->check()) {
    if ( URL::current() == route('login') ){
        session()->flash('info', '您已登录,无需再次操作!');
    }elseif ( URL::current() == route('signup') ){
        session()->flash('info', '您已注册,无需再次操作!');
    }
    return redirect('/');
}
3年前 评论

登录状态的判断是用的session嘛?如果是session 就不存在已登录状态下 继续注册,除非不同的浏览器。

6年前 评论

@best辉 当然是用Session进行判断的,但是请看上面的代码,如何区分登录和注册这两种不同的动作,如果用书中的代码(也就是上面的),会导致闪存提醒不正确。
所以需要加一个判断这个判断应该怎么写呢?

6年前 评论

file

file
问题:在同一个页面,评论和这个评论被选为最佳答案,点赞,会出现图片中的情况。刷新页面之后就没事。
重现:点赞之后刷新页面,在最佳答案取消赞,在评论点赞,就会出现这种情况。
应该是更新一个的状态后没更新另一个。。。额我闲着没事点着玩的,小问题@Summer

6年前 评论

心思真细,好问题

5年前 评论

file
为什么我按书上的来的, 还是不行啊?

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!