Ruby on Rails, Devise를 인증에 사용. Devise는 기본적으로 딥 링크를 포함하고 있지만 사용자가 먼저 인증을 받아야하는 URL로 이동해야합니다.쿼리 문자열 반환 값 URL로 쿼리 문자열 매개 변수
이 사용 사례는 내 요구 사항을 충족하지 않으며 사용자가 로그인 한 후 현재 페이지로 리디렉션되도록 쿼리 문자열 매개 변수를 제공하는 옵션이 있는지 궁금합니다. 로그인하면 페이지가 필요하지만 필수는 아닙니다.
Ruby on Rails, Devise를 인증에 사용. Devise는 기본적으로 딥 링크를 포함하고 있지만 사용자가 먼저 인증을 받아야하는 URL로 이동해야합니다.쿼리 문자열 반환 값 URL로 쿼리 문자열 매개 변수
이 사용 사례는 내 요구 사항을 충족하지 않으며 사용자가 로그인 한 후 현재 페이지로 리디렉션되도록 쿼리 문자열 매개 변수를 제공하는 옵션이 있는지 궁금합니다. 로그인하면 페이지가 필요하지만 필수는 아닙니다.
필요에 맞게 Devise::SessionsController
을 확장 할 수 있습니다. 당신이 source code 보면, 유증은 성공적인 로그인 후 특정 경로로 사용자를 리디렉션 after_sign_in_path_for
를 사용합니다.
당신이 가지고있는 자원이 routes.rb
에서는 User
입니다 가정 사용해야하는 라우터 고안 지정 :
devise_for :users, controllers: {sessions: 'sessions'}
그런 다음 Devise::SessionsController
에서 상속 app/controllers/sessions_controller
의 컨트롤러를 생성하고 after_sign_in_path_for
오버라이드 (override) :
class SessionsController < Devise::SessionsController
protected
def after_sign_in_path_for(resource)
params[:redirect_path].presence || stored_location_for(resource)
end
end
새 세션 양식 (
app/views/devise/sessions/new.html.erb
)에서
는 컨트롤러에 redirect_path
PARAM을 중계하는 숨겨진 태그를 추가
<%= hidden_field_tag :redirect_path, params[:redirect_path].presence %>
이제 사용자가 방문 new_user_session_path(redirect_path: some_path)
는, 그들은 후 원하는 경로로 리디렉션 할 필요가있는 경우 성공적인 로그인.