我有一台运行在端口3000上的Rails
服务器和一台运行在端口3001上的react app
。问题是:当我想从react端创建一个新对象时,current_user
是空的。我可以从Rails
端创建对象,没有任何问题。我已经检查了两端的请求头,两端都设置了"HTTP_COOKIE"
。控制台中也没有错误。我还将skip_before_action :verify_authenticity_token
放在了application_controller
中。当我试图从react端创建对象时,pp request.headers.env.select{|k, _| k =~ /^HTTP_/}
的输出是:
{"HTTP_VERSION"=>"HTTP/1.1",
"HTTP_X_FORWARDED_HOST"=>"localhost:3001",
"HTTP_X_FORWARDED_PROTO"=>"http",
"HTTP_X_FORWARDED_PORT"=>"3001",
"HTTP_X_FORWARDED_FOR"=>"127.0.0.1",
"HTTP_COOKIE"=>
"_ALL THE COOKIES ARE SET HERE ",
"HTTP_CONNECTION"=>"close",
"HTTP_ORIGIN"=>"http://localhost:3000",
"HTTP_X_REQUESTED_WITH"=>"XMLHttpRequest",
"HTTP_X_CSRF_TOKEN"=>"undefined",
"HTTP_ACCEPT_ENCODING"=>"gzip, deflate",
"HTTP_ACCEPT_LANGUAGE"=>"en-US,en;q=0.5",
"HTTP_ACCEPT"=>"*/*",
"HTTP_USER_AGENT"=>
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0",
"HTTP_HOST"=>"localhost:3000"}
你知道我错过了什么吗?
发布于 2020-04-17 21:15:52
您的rails会话与react
会话不同。您需要实现Authorization
头并在before_action
上填充您的current_user
。
在这里查看我的回复:How to use postman to request an API that is protected with devise?
https://stackoverflow.com/questions/61271368
复制相似问题