我用的是:
gem "graphql" gem 'graphiql-rails', group: :development
官方也有解决 CSRF 的方法。
headers: { 'X-CSRF-Token': $("meta[name=csrf-token]").attr("content"), }
可是在小程序项目中,比较另类。 不知道各位怎么处理这个问题的呢?难道直接把 CSRF 关掉?
API 模式下都可以关掉 CSRF
Gemfile gem 'rack-cors'
gem 'rack-cors'
config/initializers/cors.rb
Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', headers: :any, methods: [:get, :post, :put, :patch, :delete, :options, :head] end end
你这是跨域
凡用 token 验证的,都不需要 CSRF
另外由于大部分浏览器支持 Origin,现在服务器验证 Origin 对不对就可以了,也不用 CSRF token 了
origin可以篡改的吧?
按标准实现的浏览器会把请求中的 Origin 替换掉
第一次请求服务器的时候,把 CSRF token 拿过来