Dcat 1.5.2 自定义登录之重写Laravel认证

自定义laravel登录逻辑,重写了登录逻辑,但是登录成功后都是再跳回登录也,进不去内容页。我觉得是session会话信息没有触发导致,请问是什么原因导致的,怎么解决?
Laravel

登录成功后都是再跳回登录也,进不去内容页。
Laravel

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 14

你都验证成功了 也拿到了用户信息 为什么不去生成session了(通过用户信息去生成session令牌) 没有session肯定没有办法登录 建议看下文档

  • 注意 重写登录逻辑 原先的登录逻辑肯定有生产session的方法是不是你没加上?建议细看重写的源码
    //生成新会话
    $request->session()->regenerate();
3年前 评论

@Latent 加了这句也不管用,其实原先有的

file

file

3年前 评论

@BigXia 肯定是验证成功后才去生成session啊

3年前 评论

@BigXia

public function postLogin(Request $request)
    {


        $credentials = $request->only([$this->username(), 'password']);
        $remember = (bool) $request->input('remember', false);

        /** @var \Illuminate\Validation\Validator $validator */
        $validator = Validator::make($credentials, [
            $this->username()   => 'required',
            'password'          => 'required',
        ]);

        if ($validator->fails()) {
            return $this->validationErrorsResponse($validator);
        }

        if ($this->guard()->attempt($credentials, $remember)) {
         //执行响应 重写下这个方法
            return $this->sendLoginResponse($request);
        }

        return $this->validationErrorsResponse([
            $this->username() => $this->getFailedLoginMessage(),
        ]);
    }

Laravel

3年前 评论

@Latent 大佬可以更详细一些么? 验证完成后生成session,还是进不去。

file 打印log“This is a test11”,返回true,验证完成 file 然后返回1,代表是验证完成后生成的session. file

3年前 评论

@BigXia 给我看看你重写的控制器所有代码

3年前 评论

@Latent 直接复制的 namespace Dcat\Admin\Controllers; 下 AuthController 的代码 源码太长,贴不下,这里有在线版的 github.com/jqhph/dcat-admin/blob/b...

file

3年前 评论

@BigXia 在你认为生成session后的方法后面加上打印一下session生成了没 在做进一步排查 没生成 就仔细看看生成session的代码

Log::info(session()->all()) //
3年前 评论

@BigXia 生成了说明登录成功 是不是没有跳转到后台 访问一下后台看会不会重定向到登录页面

3年前 评论

@Latent 访问一下后台看会重定向到登录页面的 :smiley:

3年前 评论

@BigXia 你看看中间件怎么鉴权的吧 重写的时候是不是遗漏了什么

3年前 评论

@Latent 我用原生的是正常的登录的,用自定义的就不行,可以确定问题出在"自定义laravel登录"这里,但是这里的逻辑抄过去会报错。 自定义登陆《Dcat Admin 中文文档》 file

        'providers' => [
            'admin' => [
//                'driver' => 'custom',
                'driver' => 'eloquent',
//                'model'  => Dcat\Admin\Models\Administrator::class,
            ],
        ],

用自定义的就不行
    'providers' => [
        'admin' => [
            'driver' => 'custom',

        ],
    ],
3年前 评论

@BigXia 肯定不能全抄啊 你继承了基类 只需要重写你需要改动的方法就可以了…. 而且你自定义不带model?

3年前 评论

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