2016-02-23 2 views
0

У меня есть следующий тест сниппет:Как выйти из бутылки Python?

def check(username, password): 
    if username == "b" and password == "password": 
     return True 
    return False 

@route('/logout') 
@route('/logout', method="POST") 
def logout(): 
# template with a logout button 
# this does redirect successfully, but this shouldn't happen 
    redirect('/after-login') 


@route('/after-login') 
@auth_basic(check) 
def after_login(): 
    return "hello" 

@route('/login') 
@route('/login', method="POST") 
def login(): 
    return template("views/login/login_page") 
    username = post_get('username') 
    password = post_get('password') 

Я пытаюсь выйти из системы, но я не смог найти какие-либо ресурсы о том, как это сделать. В принципе, я попробовал dir (response) и dir (request) и не нашел никаких функций, которые, как представляется, отключили сеанс (в основном, попытку сброса файлов cookie), если я не закрою браузер.

+0

Кстати, вы можете свернуть ваши вызовы '@ route' в один. '@route ('/ login', method = ['GET', 'POST'])' –

ответ

0

Выпуск той же проблемы. Ну, решение, которое я нашел в документах и ​​используется, - response.delete_cookie('<cookiename>') Итак, каждый раз, когда я вхожу на страницу с настройкой любых файлов cookie, сначала я удаляю все возможные изменения файлов cookie.

+0

В этом случае работать не будет. Код OP использует Basic Auth, а не файлы cookie. –

+0

в любом случае это не сработало для меня, как описано. Каждый раз, когда я удалял все файлы cookie таким образом, все set_cookie больше не работало в каждом методе для определенных маршрутов. Так что единственное, что работало, это удаление всех файлов cookie, которые не были повторно установлены – Amphyby

0

Вы хотите выйти из HTTP Basic Auth, на самом деле это не то, для чего он предназначен. Но does seem to be a way: возвращает HTTP 401.

from bottle import abort 

@route('/logout', method=["GET", "POST"]) 
def logout(): 
    abort(401, "You're no longer logged in") 

ли эта работа?

Смежные вопросы