protect_from_forgery with:: null_session - все еще получает Не могу проверить подлинность токена CSRF - PullRequest
0 голосов
/ 29 августа 2018

У меня есть приложение React Native, делающее POST-запросы к бэкэнду Rails. Хотя я вставил protect_from_forgery with: :null_session в ApplicationController. Все запросы POST, которые я делаю, терпят неудачу, и я получаю ошибку:

Невозможно проверить подлинность токена CSRF

Это один из контроллеров в моем бэкэнде Rails, к которому я делаю запрос POST:

class AddressesController < ApplicationController

  def show
    address = Address.find(params[:id])
  end 

  def create
    address = Address.new(address_params)

    if address.save
      render json: {status: 'address created successfully'}, status: :create
    else
      render json: { errors: address.errors.full_messages }, status: :bad_request
    end
  end 

  def address_params
    params.require(:address).permit(:streetname, :zipcode, :city, :country)
  end

end

Я также пытался protect_from_forgery unless: -> { request.format.json? } при отправке запроса JSON POST, но все равно получаю ту же ошибку. Кто-нибудь может предложить другое решение? Любая помощь приветствуется! Заранее спасибо!

Обновление вопроса :

Я следил за тем, что сделал этот парень в этой ссылке . И вместо этого я вставил следующее:

class ApplicationController < ActionController::Base
  skip_before_action :verify_authenticity_token
end

Теперь я не получаю сообщение "Не могу проверить подлинность токена CSRF" как ошибку, но я все еще получаю ответ 500 (Внутренняя ошибка сервера) от моего сервера в терминале. Значения по какой-то причине не сохраняются. Это ошибка, я получаю:

  Address Create (0.4ms)  INSERT INTO "addresses" ("streetname", "zipcode", "city", "country", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?)  [["streetname", "Imenstrade 39"], ["zipcode", "1082AK"], ["city", "Amsterdam"], ["country", "The Netherlands"], ["created_at", "2018-08-29 12:23:22.261020"], ["updated_at", "2018-08-29 12:23:22.261020"]]
  ↳ app/controllers/addresses_controller.rb:10
   (2.2ms)  commit transaction
  ↳ app/controllers/addresses_controller.rb:10
Completed 500 Internal Server Error in 12ms (Views: 0.2ms | ActiveRecord: 3.2ms)

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете ActionController::API вместо ApplicationController, и я вижу синтаксическую ошибку, которую вы написали status: :create вместо status: :created

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...