php 403 Laravel认证

agxfikkp  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(115)

为什么当我登录并被转发到路由时会出现403错误?但是,如果我手动输入URL,
这是一个标识为1的中间件角色,它应该可以通过用户角色1访问
这里是代码
php artisan route:clear && php artisan route:cache composer dump-autoload
是行不通的,

public function login(Request $request)
    {
        $input = $request->all();
        $this->validate($request, [
            'identifier' => 'required',
            'password' => 'required'
        ]);

        $credentials = [
            'password' => $input['password']
        ];

        if (strpos($input['identifier'], '@') !== false) {
            $credentials['email'] = $input['identifier'];
        } else {
            $credentials['username'] = $input['identifier'];
        }

        if (auth()->attempt($credentials)) {
            if (auth()->user()->role === 1) {
                return redirect()->route('seller.dashboard');
            } else {
                abort(403, 'Anda tidak memiliki akses.');
            }
        } else {
            return redirect()->route('seller.login')->with('error', 'Email atau Password tidak sesuai.');
        }
    }

它应该直接转发到route('seller. dashboard'),而不需要403语句,因为登录的人是角色1

r55awzrz

r55awzrz1#

auth尝试方法无法正常工作,请尝试排除尝试方法的故障。

auth()->attempt($credentials)

查一下这条线路什么东西回来了?

dd(auth()->attempt($credentials));

如果auth尝试返回true,则检查用户的auth。哪个用户被认证?

dd(auth()->user());

在这里你可以得到你的答案,如果用户验证了什么是角色,如果没有,那么尝试解决auth尝试。

相关问题