У меня есть приложение ember-cli с ActiveModelAdapter для Rails API, использующее rack-cors. Я настроил оба для использования ember-cli -simple-auth-devise.
Локально в разработке все работает отлично. Но как только я развертываю приложение ember-cli на Heroku, я не могу аутентифицировать свой вход, но могу получить другие записи. Я получаю следующую ошибку 405:
POST http://example.herokuapp.com/businesses/sign_in 405 (не разрешено)
Возможно, это связано с тем, что я использую Business вместо User для своей модели Devise, но я меняю User на Business в application_controller (плюс, иначе это не будет работать локально):
## /backend/app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_filter :authenticate_user_from_token!
private
def authenticate_user_from_token!
authenticate_with_http_token do |token, options|
user_email = options[:user_email].presence
user = user_email && Business.find_by_email(user_email)
## /\ Changed User to Business /\
if user && Devise.secure_compare(user.authentication_token, token)
sign_in user, store: false
end
end
end
end
Конфигурация стойки:
## /backend/config.ru
require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
require 'rack/cors'
use Rack::Cors do
# allow all origins in development
allow do
origins '*'
resource '*',
:headers => :any,
:methods => [:get, :post, :delete, :put, :options]
end
end
Я настроил simple-auth-devise так:
// frontend/config/environment.js
ENV['simple-auth-devise'] = {
serverTokenEndpoint: 'businesses/sign_in',
resourceName: 'business',
crossOriginWhitelist: ['http://example-backend.herokuapp.com/']
};
Любое понимание этого будет высоко оценено.
Спасибо!
** Обновление ** Я сузил его до факта, что это POST для example.herokuapp.com, а не для моего внутреннего URL-адреса rails example-backend.herokuapp.com. Поэтому я думаю, что это связано с тем, что ember-cli-simple-auth не использует прокси-сервер, который я установил с помощью heroku, как это делает магазин.
heroku logs
(devcenter.heroku.com/articles/logging ). Кстати, вы уверены, что ничего не связано с CSFR? - person Tom Hert   schedule 18.10.2014