Ruby on rails Desive_token_auth-响应头中无访问令牌
我在rails应用程序中使用的是Desive_token_auth,版本为0.1.37。我正在使用rspec测试我的应用程序Ruby on rails Desive_token_auth-响应头中无访问令牌,ruby-on-rails,rspec,Ruby On Rails,Rspec,我在rails应用程序中使用的是Desive_token_auth,版本为0.1.37。我正在使用rspec测试我的应用程序 登录到应用程序成功,并且在响应头中返回访问令牌。在后续请求中,不会收到新的访问令牌。请求成功,HTTP状态为201。一段时间以来,我一直在为这个问题绞尽脑汁,并通过以下方式在React Native项目中解决了它: 确保我在rails应用程序中(在Rack CORS配置文件中)白名单标题 config.middleware.insert_在'Rack::Runtime'
登录到应用程序成功,并且在响应头中返回访问令牌。在后续请求中,不会收到新的访问令牌。请求成功,HTTP状态为201。一段时间以来,我一直在为这个问题绞尽脑汁,并通过以下方式在React Native项目中解决了它:
- 确保我在rails应用程序中(在Rack CORS配置文件中)白名单标题
config.middleware.insert_在'Rack::Runtime'、'Rack::Cors'do之前 允许做 起源“*” 资源“*”, 标题::任何, expose:['access-token','expiration','token type','uid','client'], 方法:[:获取、放置、发布、修补、删除、选项] 结束 结束
- 保存(使用AsynStorage)登录后返回的身份验证标头
if(相应正常){ if(resp.headers.get('access-token')){ 让accessToken=resp.headers.get('access-token'); 让client=resp.headers.get('client'); 让expiry=resp.headers.get('expiry'); 让tokenType=resp.headers.get('token-type'); 让uid=resp.headers.get('uid'); 让authHeader={'client':client,expiry:expiry,uid:uid,'access token':accessToken,'token type':tokenType}; AsyncStorage.setItem('auth_header',JSON.stringify(authHeader)); } 返回json; }
- 为每个后续请求使用保存的标题
/the_thing导出函数fetchTheThing(){ 返回(调度,获取状态)=>{ 返回AsyncStorage.getItem('auth_header',(err,result)=>{ 返回Api.get(
,null,result)。然后(resp=>{ 分派(setFetchedThing({thing:resp})); }).catch((ex)=>{ 控制台日志(ex); }); }); }; }
(很抱歉设置了这些代码块的格式)这是登录后发送的示例请求标头<代码>{“接受”=>“应用程序/json”,“内容类型”=>“应用程序/json”,“访问令牌”=>“SYotATXiRVWJbkX_LR2TLw”,“令牌类型”=>“承载者”,“客户端”=>“188DMQOWOLSAZFFBD1VJG”,“到期”=>“1456358941”,“uid”=>“vida@kihn.net“}可能是因为令牌未更新时的批处理请求?