【问题标题】:How can I log what is going wrong in my controller如何记录控制器中出现的问题
【发布时间】:2020-02-01 16:01:38
【问题描述】:

我正在尝试使用 laravel/vue.js/vuex 在我的网站上注册用户。在我的商店操作中,我调用 tryRegister 操作来发布请求。但它一直以未经授权的 401 错误响应,我不明白为什么。因此,我将我的控制器设置为最基本的,因为它可以得到响应,即使这样它仍然会抛出 401 授权错误。我是后端开发的新手,只是不明白为什么会发生这种情况。我确实知道这条路线是有效的。如何让我的控制器功能给出基本响应以查看它是否正常工作?为什么即使我没有对授权做任何事情,它也会给出授权错误,这只是控制器给出的标准错误吗?

尝试注册操作

tryRegister(context, credentials) {
    return new Promise((resolve, reject) => {
        axios
            .post("/api/auth/register", credentials)
            .then(response => {
                console.log(response.data);
                //context.commit("registerSucces", response.data);
                resolve(response.data);
            })
            .catch(error => {
                console.log(error.response);
                reject(error);
            });
    });
}

授权控制器注册函数

public function register(Request $request)
{
    // $user = User::create([
    //     'email'    => $request->email,
    //     'password' => $request->password,
    // ]);

    //$token = auth('api')->login($user);

    //return $this->respondWithToken($token);


    return response()->json(['message' => 'controller register']);
}

【问题讨论】:

  • 在控制器的构造方法中检查您是否在路由中使用了auth 中间件。
  • 你有路由的令牌吗?有中间件吗?路由是否以某种方式受到保护(可能在防火墙后面 - 我假设 laravel 有某种防火墙)?
  • @zahidhasanemon 我在构造函数中有一个身份验证中间件。它说$this->middleware('auth:api', ['except' => ['login']]);,所以我认为它不对登录功能进行授权,所以我认为我不希望它用于注册。但是我怎样才能进行 axios 调用以便它通过中间件呢?还是这取决于中间件的类型?
  • 我目前正在阅读cloudways.com/blog/controllers-middleware-laravel 以更好地了解中间件!

标签: php laravel vue.js vuex


【解决方案1】:

由于auth 中间件,无法访问控制器的注册方法。所以你得到了未授权的错误。使其未经授权即可访问。在控制器的构造方法中改变这一行,如下所示。

$this->middleware('auth:api', ['except' => ['login', 'register']]);

loginregister 是控制器的方法,现在无需授权即可访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多