Commit 1f021975c401e59d451af9df249fd6599f84d6a6
1 parent
e3f2222d
Exists in
fix_last_path
Fixed redirect to use last request_path
Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
Showing
1 changed file
with
8 additions
and
3 deletions
Show diff stats
lib/omniauth/strategies/remote_user.rb
@@ -41,17 +41,22 @@ module OmniAuth | @@ -41,17 +41,22 @@ module OmniAuth | ||
41 | request.cookies.has_key?(options.last_path_cookie) && request.cookies[options.last_path_cookie] | 41 | request.cookies.has_key?(options.last_path_cookie) && request.cookies[options.last_path_cookie] |
42 | end | 42 | end |
43 | 43 | ||
44 | + def __request_path(env) | ||
45 | + env['REQUEST_PATH'] | ||
46 | + end | ||
47 | + | ||
44 | def __set_last_path(env,response) | 48 | def __set_last_path(env,response) |
45 | request = Rack::Request.new(env) | 49 | request = Rack::Request.new(env) |
46 | if not __last_path(env) | 50 | if not __last_path(env) |
47 | - response.set_cookie(options.last_path_cookie, {value: request.path_info , path: "#{request.script_name}", httponly: true}) | 51 | + response.set_cookie(options.last_path_cookie, {value: __request_path(env) , path: "#{request.script_name}"}) |
48 | end | 52 | end |
49 | end | 53 | end |
50 | 54 | ||
51 | def __return_last_path(env) | 55 | def __return_last_path(env) |
52 | request = Rack::Request.new(env) | 56 | request = Rack::Request.new(env) |
53 | - response = redirect_if_not_logging_in(request, __last_path(env)) | ||
54 | - if response && __last_path(env) | 57 | + if ! [_auth_path(request),_callback_path(request)].include?(__request_path(env)) && __last_path(env) |
58 | + response = Rack::Response.new | ||
59 | + response.redirect __last_path(env) | ||
55 | response.delete_cookie(options.last_path_cookie , path: "#{request.script_name}" ) | 60 | response.delete_cookie(options.last_path_cookie , path: "#{request.script_name}" ) |
56 | response.finish | 61 | response.finish |
57 | end | 62 | end |