Я использую Devise/OmniAuth (с входом в Facebook), и я пытаюсь ограничить маршруты Devise до именно этим, потому что я хочу разрешить вход только через Facebook.Как ограничить маршруты Devise до новых маршрутов/destroy и OmniAuth?
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) devise/sessions#new
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_omniauth_authorize GET|POST /users/auth/:provider(.:format) callbacks#passthru {:provider=>/facebook/}
user_omniauth_callback GET|POST /users/auth/:action/callback(.:format) callbacks#:action
, но вместо этого, я могу показаться, чтобы не сокращать набор маршрутов вниз к чему-либо меньше, чем это (без также сносит new_user_session
и destroy_user_session
):
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_omniauth_authorize GET|POST /users/auth/:provider(.:format) callbacks#passthru {:provider=>/facebook/}
user_omniauth_callback GET|POST /users/auth/:action/callback(.:format) callbacks#:action
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) registrations#cancel
user_registration POST /users(.:format) registrations#create
new_user_registration GET /users/sign_up(.:format) registrations#new
edit_user_registration GET /users/edit(.:format) registrations#edit
PATCH /users(.:format) registrations#update
PUT /users(.:format) registrations#update
DELETE /users(.:format) registrations#destroy
Несколько других вопросов (например, , this one) Я обнаружил, показывают, что :skip
в routes.rb
может помочь, например:
devise_for :users, :skip => [:sessions, :registrations]
Проблема с этим подходом заключается в том, что он сдувает new_user_session
и destroy_user_session
. В принципе, я хочу, чтобы пользователь мог перейти на страницу входа (new_user_session_path
) и выйти (через destroy_user_session_path
).
Я думаю, что здесь отсутствует фундаментальная концепция, но я не уверен, что это такое. По сути, я хотел бы, чтобы отключить эти маршруты:
devise/sessions#create
(зачем мне это нужно, если Войти всегда через Facebook)devise/passwords#create
devise/passwords#new
devise/passwords#edit
devise/passwords#update
registrations#cancel
registrations#create
registrations#new
registrations#edit
registrations#update
registrations#destroy
Как я мог это сделать? (Или делает то, что я пытаюсь сделать, даже имеет смысл?)
http://stackoverflow.com/questions/8418514/rails-devise-how-can-i-disable-some-default-routes не уверен, что это помогает .. – Mingsheng
https://github.com/plataformatec/ devise/blob/66db52ce31b5d8629f5813a1d7f03a8bc17e5d52/test/rails_app/config/routes.rb # L40 Проверьте это! Использование только: [: регистрация] – duykhoa