Как перенаправить на исходный URL после входа в Tornado - PullRequest
0 голосов
/ 22 ноября 2018

Если я открываю URL, для входа в который требуется логин, после того, как логин был выполнен, я хочу быть перенаправлен на исходный URL.Как я могу достичь этого в Торнадо?Я искал в Google, но ничего полезного не нашел.Я использовал следующий код, но он не работает.

def LoginHandler(RequestHandler):
    if not self.current_user:
        self.render("login.html")
    else:
        self.redirect(self.request.headers["Referer"])

Я использовал инструмент разработчика Google и обнаружил, что при перенаправлении URL-адреса на страницу входа в поле заголовка запроса отсутствует поле «Ссылка».

1 Ответ

0 голосов
/ 22 ноября 2018

Если вы используете @web.authenticated для запроса входа в свои обработчики, он перенаправит пользователя на страницу входа с текущим URL в параметре next.

Например, если вы запрашиваете /protected/page, и если вы не вошли в систему, вы будете перенаправлены на страницу входа с этим URL - /login?next=/protected/page.

. В вашем обработчике входа проверьте наличиеnext параметр и перенаправление.

self.redirect(self.get_query_argument('next', '/default/url/if/next/is/empty'))
...