我正在尝试构建rails API,并且我正在使用devise_token_auth gem来使用令牌进行用户身份验证。
我设法正确设置了一切,然后遇到了问题。每当我尝试重置密码时,我都会从API中收到401 Unauthorized错误。
流程如下:
我的问题发生在第8步和第9步之间,我得到了401 Unauthorized响应。这是为什么?我该怎么做才能解决这个问题?
编辑:
从有关此问题的文档和主题中,我意识到它与标题有关。但是,我不知道如何使用Ruby on Rails管理请求上的标头。
EDIT2:
我设法找出问题所在。我需要将访问令牌,客户端和 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)
答案 0 :(得分:1)
好的,实际上我克服了
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',
但现在问题是它要求我输入current_password
。在current_password
我们edit
到allow_password_change
true
期间,我们不应该问# allow user to change password once without current_password
@resource.allow_password_change = true if recoverable_enabled?
x<- data.frame(x1=c(1,2,3,4,5),x2=c(2,3,4,5,6),x3=c(3,2,5,2,5))
x$x2per <- (x$x2/(x$x2+x$x3))*100
x$x3per <- (x$x3/(x$x2+x$x3))*100
if(x$x2per>50){
x$Fav <- "App"
}
else x$Fav<-"LF"
答案 1 :(得分:-1)
通过devise_token_auth
申请密码更改:
/auth/password
,PUT
,password
,password_confirmation
,access-token
,client
,uid
。