【发布时间】: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 以更好地了解中间件!