我正在制作一个离子应用程序,后端是用Laravel制作的。我正在研究密码重置功能,当我在chrome中测试端点时,我不断收到上述错误。这是联系信息功能的代码:
sendContactConfirmation: function(contact, reset) {
var defer = $q.defer();
if(reset == 'reset'){
var endpointUrl = $http.post(AppSettings.apiUrl + "/users/reset", { phone: contact });
}
else {
var endpointUrl = $http.post(AppSettings.apiUrl + "/users", { phone: contact });
}
endpointUrl.then(function(result) {
service.set(result.data.user);
defer.resolve(result);
}, function(error) {
defer.reject(error);
});
return defer.promise;
},
这些是我Laravel后端的路线:
Route::group(['jwt.auth', ['except' => ['authenticate']], 'prefix' => 'api', 'namespace' => 'Api'], function() {
Route::post('authenticate', 'AuthenticateController@authenticate');
Route::get('authenticate/user', 'AuthenticateController@getAuthenticatedUser');
Route::post('users', 'UsersController@register');
Route::post('users/reset', 'UsersController@resetContact');
Route::put('users/{user}/reset', 'UsersController@resetPassword');
Route::put('users/{user}', 'UsersController@update');
Route::put('users/{user}/activate', 'UsersController@activate');
Route::post('users/{user}/pic', 'UsersController@uploadPicture');
});
这是resetContact函数:
public function resetContact(Request $request)
{
$this->validate(
$request,
['phone' => 'required|regex:/^[0-9]{8}$/']
);
$user = User::where('phone', $request->get('phone'))->firstOrFail();
if ($user) {
try {
$this->sendValidationCode($user, 'reset');
}
catch (\Exception $e) {
throw new ApiException($e->getMessage(), 500);
}
}
return response()->json([
'user' => $user,
]);
}
不确定为什么我会收到400 Bad request错误。
答案 0 :(得分:0)
使用Laravel JWT时,请确保始终在jwt.auth下发送所有路由的令牌,否则您将收到错误400 =未提供令牌。在离子状态下,确保在每次调用laravel端点时都提供toke以避免此错误。