Ruby on rails 设计令牌身份验证重置密码出现未经授权的错误

Ruby on rails 设计令牌身份验证重置密码出现未经授权的错误,ruby-on-rails,reactjs,devise-token-auth,Ruby On Rails,Reactjs,Devise Token Auth,我正在使用designetokenauthgem构建railsapi,以便使用令牌进行身份验证。 每当我试图通过单击“忘记密码”来重置密码时,表单就会显示为提供电子邮件,当发送电子邮件时,会向用户提供重置链接,用户会在此前端页面上提交表单,该页面会向API:PUT/auth/password发送一个带有密码和密码确认参数的请求。之后,我收到一个错误,说已完成。 这是我的代码 function regeneratePassword(response, password, confirmPasswo

我正在使用
designetokenauthgem
构建railsapi,以便使用令牌进行身份验证。 每当我试图通过单击“忘记密码”来重置密码时,表单就会显示为提供电子邮件,当发送电子邮件时,会向用户提供重置链接,用户会在此前端页面上提交表单,该页面会向
API:PUT/auth/password
发送一个带有密码和密码确认参数的请求。之后,我收到一个错误,说
已完成
这是我的代码

function regeneratePassword(response, password, confirmPassword) {
  const requestOptions = {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
      'access-token': response.headers['access-token'],
      'client': response.headers['client'],
      'token-type': response.headers['token-type'],
      'uid': response.headers['uid'],
      'expiry': response.headers['expiry']
    },
    body: JSON.stringify({"password": password, "password_confirmation": confirmPassword})
  };
  return fetch(`${baseURL.URL}${baseURL.PORT}/auth/password/`, requestOptions).then(handleResponse);
}
Started PUT "/auth/password/" for ::1 at 2018-03-20 11:06:28 +0545
Processing by DeviseTokenAuth::PasswordsController#update as */*
  User Load (1.6ms)  SELECT  "users".* FROM "users" WHERE "users"."uid" = $1 LIMIT $2  [["uid", "manager2@gmail.com"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."uid" = $1 LIMIT $2  [["uid", "manager2@gmail.com"], ["LIMIT", 1]]
[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (0.12ms)
Completed 401 Unauthorized in 7ms (Views: 1.6ms | ActiveRecord: 1.7ms)
我在终端中遇到错误:

function regeneratePassword(response, password, confirmPassword) {
  const requestOptions = {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
      'access-token': response.headers['access-token'],
      'client': response.headers['client'],
      'token-type': response.headers['token-type'],
      'uid': response.headers['uid'],
      'expiry': response.headers['expiry']
    },
    body: JSON.stringify({"password": password, "password_confirmation": confirmPassword})
  };
  return fetch(`${baseURL.URL}${baseURL.PORT}/auth/password/`, requestOptions).then(handleResponse);
}
Started PUT "/auth/password/" for ::1 at 2018-03-20 11:06:28 +0545
Processing by DeviseTokenAuth::PasswordsController#update as */*
  User Load (1.6ms)  SELECT  "users".* FROM "users" WHERE "users"."uid" = $1 LIMIT $2  [["uid", "manager2@gmail.com"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."uid" = $1 LIMIT $2  [["uid", "manager2@gmail.com"], ["LIMIT", 1]]
[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (0.12ms)
Completed 401 Unauthorized in 7ms (Views: 1.6ms | ActiveRecord: 1.7ms)

如果更新控制器代码,则更容易找到原因。请检查列表1。您能在控制器的请求头中看到访问令牌吗?2.在更改密码之前,是否已完成通过访问令牌对用户进行身份验证?3.用户是否存在?4.用户激活了吗?