В моем проекте проект обеспечивает регистрацию пользователя/аутентификацию для панели администратора. Мне нужно добавить метод API, который будет подписывать user_in и возвращать JSON со статусом + cookie сеанса.Rails Devise с обычной авторизацией и API
routes.rb
devise_for :user, :controllers => {sessions: 'sessions'}
Controller Session
class SessionsController < Devise::SessionsController
skip_before_filter :verify_authenticity_token
def create
resource = warden.authenticate!(:scrope => resource_name, :recall => "#{controller_path}#failure")
sign_in(resource_name, resource)
respond_to do |format|
format.html { respond_with resource, :location => after_sign_in_path_for(resource) }
format.json { render json: {:success => 1}}
end
end
Если я буду размещать данные пользователя/sign_in.json, он будет оказывать { "успех": 1}, который является точно, что я необходимость.
Но вопрос в том, как переместить пользователя/sign_in.json на какой-то пользовательский URL-адрес, например/api/sign_in?
Это создаст все схемы разработки внутри: api namespace/api/user /. Мне нужен только 1 метод/api/sign_in –
@RuslanSavenok Вы можете использовать 'skip', чтобы использовать только те, которые вы хотите:' skip: [: registrations,: unlocks,: passwords,: confirmations] ' –
С таким подходом i все равно будет 2 маршрута, которые мне не нужны. Получить/sign_in/сделать визу в форме Получить/sign_out/вывести пользователя Добавлено мое решение ниже. –