Laravel / angular - 400坏请求

时间:2016-08-22 14:38:31

标签: php angularjs api laravel

我正在制作一个离子应用程序,后端是用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错误。

1 个答案:

答案 0 :(得分:0)

使用Laravel JWT时,请确保始终在jwt.auth下发送所有路由的令牌,否则您将收到错误400 =未提供令牌。在离子状态下,确保在每次调用laravel端点时都提供toke以避免此错误。