Ruby on rails 如何使用designe-token_authenticable 访问当前_用户;宝石
我正在做一个小项目,在Ruby on rails 如何使用designe-token_authenticable 访问当前_用户;宝石,ruby-on-rails,devise,graphql,react-apollo,devise-token-auth,Ruby On Rails,Devise,Graphql,React Apollo,Devise Token Auth,我正在做一个小项目,在Rails/GraphQL/Apollo/React设置中使用designe和designe-token\u authenticable。项目是使用webpacker设置的,因此前端和后端都来自同一个域。登录、注册、注销均由前端处理(React)。我还需要指出,这不是一个API唯一的应用程序 看来,服务器没有设置当前用户或正确的cookie,我收到了一个网络错误 Heroku日志显示以下错误: NoMethodError (undefined method `authent
Rails/GraphQL/Apollo/React
设置中使用designe
和designe-token\u authenticable
。项目是使用webpacker
设置的,因此前端和后端都来自同一个域。登录、注册、注销均由前端处理(React)。我还需要指出,这不是一个API唯一的应用程序
看来,服务器没有设置当前用户或正确的cookie,我收到了一个网络错误
Heroku日志显示以下错误:
NoMethodError (undefined method `authentication_token' for #<User:0x000055ca6c0e4c50>)
修正了这个问题。它与GraphQl/Apollo代码无关。谢谢马尔科·卡坎斯基是对的,我应该详细说明我的发现以及我是如何解决的:-( 我错误地认为当gem在头中检测到
身份验证令牌时,当前\u用户
由gem自动发送身份验证令牌
。至少按照我设置项目的方式,我没有得到预期的当前\u用户
,而是得到了一个nil对象
所以…我在application\u controller.rb
中创建了一个current\u user
私有方法,解决了这个问题
这是密码
def current_user
token = request.headers["Authorization"].to_s
User.find_for_database_authentication(authentication_token: token)
end
def current_user
token = request.headers["Authorization"].to_s
User.find_for_database_authentication(authentication_token: token)
end
也许你可以与社区的其他人分享这个解决方案?谢谢,我正在处理一个类似的问题,你的解决方案真的很有帮助!:)如果你编辑你的原始问题,我将能够对它进行投票,因为它现在有一个非常有用的答案。
def current_user
token = request.headers["Authorization"].to_s
User.find_for_database_authentication(authentication_token: token)
end