V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JasonTsang
V2EX  ›  PHP

laravel 使用自带的 middleware('auth') 有问题

  •  1
     
  •   JasonTsang · 2019-09-19 08:25:27 +08:00 · 5286 次点击
    这是一个创建于 1652 天前的主题,其中的信息可能已经有所发展或是发生改变。

    laravel 使用自带的 middleware('auth') 做身份认证 有问题啊。登录后 过一段时间,必须要清除 cookie 才能再次登录,到现在还没能找到原因。。

    第 1 条附言  ·  2019-09-19 13:39:52 +08:00

    可能是我描述不清楚 我详细说一下吧

    我是用auth中间件去实现用户权限管理的,登录 注册等也是,但我发现 如果是登录过期后 再次去登录的时候 ,界面会一闪而过 ,也没报错。但删除浏览器COOKIE后 又能正常登录。

    登录代码:

        //登录方法
        public function login(Request $request){
    
            $param = $request->all();
    
            if($request->method()  == 'GET'){
                return \view('auth.login');
            }
    
            if (Auth::attempt(['phone' => $param['phone'], 'password' => $param['password']],false)) {
                // 认证通过...
                return redirect(route('home'))->with('message', ['登录成功!',1]);
            }else{
                return redirect(route('login'))->with('message',  ['登录失败!',2]);
            }
    
        }
    
    15 条回复    2019-09-23 17:15:19 +08:00
    wzyefd
        1
    wzyefd  
       2019-09-19 08:50:50 +08:00 via iPhone
    有 logout 吗
    InternetExplorer
        2
    InternetExplorer  
       2019-09-19 08:54:39 +08:00 via Android
    默认要没有登录的客户端才能访问登录接口
    Varobjs
        3
    Varobjs  
       2019-09-19 08:58:05 +08:00 via Android
    你知道这个实现原理吗,就说有问题
    mingyuexin
        4
    mingyuexin  
       2019-09-19 09:08:46 +08:00
    确定有问题吗?
    zachlhb
        5
    zachlhb  
       2019-09-19 09:12:42 +08:00 via Android
    你可以自己实现
    Sor
        6
    Sor  
       2019-09-19 09:17:23 +08:00
    请详细描述你遇到的什么问题
    atan
        7
    atan  
       2019-09-19 10:07:33 +08:00 via Android
    所有的网站不都是要清除 cookie 后( Logout 也算清除 cookie 吧)才能再次登陆吗?
    JasonTsang
        8
    JasonTsang  
    OP
       2019-09-19 13:32:30 +08:00
    @wzyefd 没有 LOGOUT 自动过时的就会出现这样的问题、。
    JasonTsang
        9
    JasonTsang  
    OP
       2019-09-19 13:41:03 +08:00
    @Sor
    @atan
    @zachlhb
    @mingyuexin
    我补充了描述了 麻烦帮忙看看
    JasonTsang
        10
    JasonTsang  
    OP
       2019-09-19 13:42:32 +08:00
    @InternetExplorer 哪这个怎么破?登录过时 算有登录?我只是登录过时 过时后 ,要求重新登录,再登录就无法登录了。只能清除 COOKIE 才能登录。
    mamahaha
        11
    mamahaha  
       2019-09-19 14:06:21 +08:00
    你可能是 migrate:xxx 了。
    xstoop
        12
    xstoop  
       2019-09-19 14:12:11 +08:00
    再次去登录的时候 ,界面会一闪而过?
    什么界面一闪而过?闪过到哪里了?
    JasonTsang
        13
    JasonTsang  
    OP
       2019-09-19 14:18:52 +08:00
    @xstoop 登录表单提交后 直接又回到登录页面

    看我登录的逻辑 如果登录成功后 应该是进入 /home 也就是会员中心的。后来发现 他是先跳转到 /home 这时估计又检测权限 结果又跳转到 login 页面。但问题就出在 Auth::attempt 应该是登录成功后才会跳到 home,哪么登录成功后为什么进入 home 后权限检测的时候又说他没成功?跳转回 login 页面?

    ```
    //登录方法
    public function login(Request $request){

    $param = $request->all();

    if($request->method() == 'GET'){
    return \view('auth.login');
    }

    if (Auth::attempt(['phone' => $param['phone'], 'password' => $param['password']],false)) {
    // 认证通过...
    return redirect(route('home'))->with('message', ['登录成功!',1]);
    }else{
    return redirect(route('login'))->with('message', ['登录失败!',2]);
    }

    }

    ```
    Sor
        14
    Sor  
       2019-09-19 16:02:04 +08:00
    @JasonTsang 登录认证时的 guard 和鉴权时的 guard 是否一致,当前 config auth.guards 配置了几个
    JasonTsang
        15
    JasonTsang  
    OP
       2019-09-23 17:15:19 +08:00
    @Sor 肯定一样,不然 怎么能登录进去。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3001 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:43 · PVG 22:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.