Настроим аутентификацию (просто проверка логина/пароля без контроля прав доступа к различным ресурсам).
Устанавливаем:
easy_install authkit
Открываем конфигурацию middleware:
vi myapp/config/middleware.py
Добавляем в самый верх, в блок import:
import authkit.authenticate
Также ПЕРЕД блоком:
# Display error documents for 401, 403, 404 status codes (and
# 500 when debug is disabled)
if asbool(config['debug']):
app = StatusCodeRedirect(app)
else:
app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
С аналогичным отступом добавляем подключение auth middleware:
app = authkit.authenticate.middleware(app, app_conf)
Теперь нам необходимо сконфигурировать AuthKit:
vi development.ini
И в самый низ блока "[app:main]" добавляем следующее:
authkit.setup.method = form, cookie
authkit.form.authenticate.user.data = admin:qwerty
[без выравнивания по = раб. не будут ]admin2:qwerty2
authkit.cookie.secret = secret string
authkit.cookie.signoutpath = /main/signout
Таким образом мы создали одного пользователя и выбрали тип аутентификации - формы/куки, а также выбрали метод, при вызове которого будет происходить logout.
Теперь открываем наш контроллер:
vi myapp/controllers/main.py
После этого создаем там методы:
def private(self):
if request.environ.get("REMOTE_USER"):
return "You are authenticated as %s!" % request.environ.get("REMOTE_USER")
else:
response.status = "401 Not authenticated"
return "You are not authenticated"
def signout(self):
return "Successfully signed out!"
И пробуем открыть его через сеть: http://xx.xx.xx.xx:5000/main/private и там нам будет выдана форма, введя в которую admin/qwerty мы станем аутентифицированным пользователем. Проверка статус аутентификации проверяется по логину, который в случае успешной аутентификации помещается в request.environ.get("REMOTE_USER"). Чтобы "вылогиниться" нам необходимо просто посетить адрес http://xx.xx.xx.xx:5000/main/signout при этом куки файл, хранящий данные о залогинености будет удален.
Все, с аутентификацией закончено :)
No comments :
Post a Comment
Note: only a member of this blog may post a comment.