![](/img/trans.png)
[英]Rails returning 401 Unauthorised for User Auth Flow - Rails, devise gem, Devise_token_auth gem
[英]Devise_token_auth Reset Password Flow 401 Error
我正在尝试构建一个 rails API,我正在使用devise_token_auth gem 使用令牌进行用户身份验证。
我设法正确设置了所有内容,但遇到了问题。 每当我尝试重置密码时,都会收到来自 API 的 401 Unauthorized 错误。
流程如下:
我的问题发生在第 8 步和第 9 步之间,在那里我收到了 401 未经授权的响应。 为什么? 我能做些什么来解决这个问题?
编辑:
从有关此问题的文档和线程中,我意识到它与标题有关。 但是,我不知道如何使用 Ruby on Rails 管理请求的标头。
编辑2:
我设法找出问题所在。 我需要将access-token 、 client和uid作为标头传递。 我可以访问该信息,并且正在尝试通过执行以下操作来设置请求标头:
http = Net::HTTP.new("127.0.0.1", "3000")
request = Net::HTTP::Put.new("/api/v1/auth/password")
request.add_field('uid', @@sens_pms["uid"])
request.add_field('client', @@sens_pms["client_id"])
request.add_field('access-token', @@sens_pms["token"])
response = http.request(request)
但是,当我这样做时,出现了一个新问题。 服务器 (API) 应用程序抛出以下错误:
ActionDispatch::Cookies::CookieOverflow (ActionDispatch::Cookies::CookieOverflow)
重要信息:我在开发环境中执行此操作(没有 nginx,只有 webrick)
好吧,实际上我克服了
You must fill out the fields labeled 'Password' and 'Password confirmation
我确实更新了header
'Authorization': 'Basic ',
'Content-Type' : 'application/json',
"token-type" : 'Bearer',
'access-token' : token,
'expiry':'XXXXX',
'client':'XXXXX',
'uid':'XXXXX',
通过devise_token_auth
请求更改密码:
/auth/password
,PUT
,password
, password_confirmation
,access-token
, client
, uid
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.