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

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

  •  1
     
  •   JasonTsang · 62 天前 · 2517 次点击
    这是一个创建于 62 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  62 天前

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

    我是用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
        1
    wzyefd   62 天前 via iPhone
    有 logout 吗
        2
    InternetExplorer   62 天前 via Android
    默认要没有登录的客户端才能访问登录接口
        3
    Varobjs   62 天前 via Android
    你知道这个实现原理吗,就说有问题
        4
    mingyuexin   62 天前
    确定有问题吗?
        5
    zachlhb   62 天前 via Android
    你可以自己实现
        6
    Sor   62 天前
    请详细描述你遇到的什么问题
        7
    atan   62 天前 via Android
    所有的网站不都是要清除 cookie 后( Logout 也算清除 cookie 吧)才能再次登陆吗?
        8
    JasonTsang   62 天前
    @wzyefd 没有 LOGOUT 自动过时的就会出现这样的问题、。
        9
    JasonTsang   62 天前
    @Sor
    @atan
    @zachlhb
    @mingyuexin
    我补充了描述了 麻烦帮忙看看
        10
    JasonTsang   62 天前
    @InternetExplorer 哪这个怎么破?登录过时 算有登录?我只是登录过时 过时后 ,要求重新登录,再登录就无法登录了。只能清除 COOKIE 才能登录。
        11
    mamahaha   62 天前
    你可能是 migrate:xxx 了。
        12
    xstoop   62 天前
    再次去登录的时候 ,界面会一闪而过?
    什么界面一闪而过?闪过到哪里了?
        13
    JasonTsang   62 天前
    @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]);
    }

    }

    ```
        14
    Sor   62 天前
    @JasonTsang 登录认证时的 guard 和鉴权时的 guard 是否一致,当前 config auth.guards 配置了几个
        15
    JasonTsang   58 天前
    @Sor 肯定一样,不然 怎么能登录进去。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2514 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 14:16 · PVG 22:16 · LAX 06:16 · JFK 09:16
    ♥ Do have faith in what you're doing.