etspring
@etspring
Начитанное быдло

Почему devise_token_auth ломает роуты vanilla devise?

Бонжорно бамбини! Всем животворящего пивка после deep blue friday!
Такой вопрос имею вам задать.
Имеется rails5-апликуха, в которой используется devise и devise_token_auth.
Devise используется на морде в связке с omniauth, omniauth-google-oauth2 ну и omniauth-пейсбук.
Token-auth для api.

Собственно роутинг:
scope module: 'api' do
  namespace :v1 do
    mount_devise_token_auth_for 'User', at: 'auth'
  end
end

devise_for :users, :controllers => { :omniauth_callbacks => "callbacks" }, as: 'auth'
resources :users


Это дает нам следующие роуты:
=========================TOKEN AUTH=======================================
 new_v1_user_session GET        /v1/auth/sign_in(.:format)                           devise_token_auth/sessions#new
                           v1_user_session POST       /v1/auth/sign_in(.:format)                           devise_token_auth/sessions#create
                   destroy_v1_user_session DELETE     /v1/auth/sign_out(.:format)                          devise_token_auth/sessions#destroy
                      new_v1_user_password GET        /v1/auth/password/new(.:format)                      devise_token_auth/passwords#new
                     edit_v1_user_password GET        /v1/auth/password/edit(.:format)                     devise_token_auth/passwords#edit
                          v1_user_password PATCH      /v1/auth/password(.:format)                          devise_token_auth/passwords#update
                                           PUT        /v1/auth/password(.:format)                          devise_token_auth/passwords#update
                                           POST       /v1/auth/password(.:format)                          devise_token_auth/passwords#create
               cancel_v1_user_registration GET        /v1/auth/cancel(.:format)                            devise_token_auth/registrations#cancel
                  new_v1_user_registration GET        /v1/auth/sign_up(.:format)                           devise_token_auth/registrations#new
                 edit_v1_user_registration GET        /v1/auth/edit(.:format)                              devise_token_auth/registrations#edit
                      v1_user_registration PATCH      /v1/auth(.:format)                                   devise_token_auth/registrations#update
                                           PUT        /v1/auth(.:format)                                   devise_token_auth/registrations#update
                                           DELETE     /v1/auth(.:format)                                   devise_token_auth/registrations#destroy
                                           POST       /v1/auth(.:format)                                   devise_token_auth/registrations#create
                  new_v1_user_confirmation GET        /v1/auth/confirmation/new(.:format)                  devise_token_auth/confirmations#new
                      v1_user_confirmation GET        /v1/auth/confirmation(.:format)                      devise_token_auth/confirmations#show
                                           POST       /v1/auth/confirmation(.:format)                      devise_token_auth/confirmations#create
                    v1_auth_validate_token GET        /v1/auth/validate_token(.:format)                    devise_token_auth/token_validations#validate_token
                           v1_auth_failure GET        /v1/auth/failure(.:format)                           devise_token_auth/omniauth_callbacks#omniauth_failure
                                           GET        /v1/auth/:provider/callback(.:format)                devise_token_auth/omniauth_callbacks#omniauth_success
                                           GET|POST   /omniauth/:provider/callback(.:format)               devise_token_auth/omniauth_callbacks#redirect_callbacks
                          omniauth_failure GET|POST   /omniauth/failure(.:format)                          devise_token_auth/omniauth_callbacks#omniauth_failure
                                           GET        /v1/auth/:provider(.:format)                         redirect(301)


======================WЫEB-МОРДА==========================================


                     new_auth_user_session GET        /users/sign_in(.:format)                             devise/sessions#new
                         auth_user_session POST       /users/sign_in(.:format)                             devise/sessions#create
                 destroy_auth_user_session DELETE     /users/sign_out(.:format)                            devise/sessions#destroy
                    new_auth_user_password GET        /users/password/new(.:format)                        devise/passwords#new
                   edit_auth_user_password GET        /users/password/edit(.:format)                       devise/passwords#edit
                        auth_user_password PATCH      /users/password(.:format)                            devise/passwords#update
                                           PUT        /users/password(.:format)                            devise/passwords#update
                                           POST       /users/password(.:format)                            devise/passwords#create
             cancel_auth_user_registration GET        /users/cancel(.:format)                              devise/registrations#cancel
                new_auth_user_registration GET        /users/sign_up(.:format)                             devise/registrations#new
               edit_auth_user_registration GET        /users/edit(.:format)                                devise/registrations#edit
                    auth_user_registration PATCH      /users(.:format)                                     devise/registrations#update
                                           PUT        /users(.:format)                                     devise/registrations#update
                                           DELETE     /users(.:format)                                     devise/registrations#destroy
                                           POST       /users(.:format)                                     devise/registrations#create
                new_auth_user_confirmation GET        /users/confirmation/new(.:format)                    devise/confirmations#new
                    auth_user_confirmation GET        /users/confirmation(.:format)                        devise/confirmations#show
                                           POST       /users/confirmation(.:format)                        devise/confirmations#create
auth_user_google_oauth2_omniauth_authorize GET|POST   /omniauth/google_oauth2(.:format)                    callbacks#passthru
 auth_user_google_oauth2_omniauth_callback GET|POST   /omniauth/google_oauth2/callback(.:format)           callbacks#google_oauth2
     auth_user_facebook_omniauth_authorize GET|POST   /omniauth/facebook(.:format)                         callbacks#passthru
      auth_user_facebook_omniauth_callback GET|POST   /omniauth/facebook/callback(.:format)                callbacks#facebook


Хотя по логике для web роуты колбеков должны выглядеть так:
auth_user_google_oauth2_omniauth_authorize GET|POST   /users/auth/google_oauth2(.:format)                  callbacks#passthru
 auth_user_google_oauth2_omniauth_callback GET|POST   /users/auth/google_oauth2/callback(.:format)         callbacks#google_oauth2
     auth_user_facebook_omniauth_authorize GET|POST   /users/auth/facebook(.:format)                       callbacks#passthru
      auth_user_facebook_omniauth_callback GET|POST   /users/auth/facebook/callback(.:format)              callbacks#facebook

В связи с этим вопрос - как не дать devise_token_auth сломать роуты?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы