С начало небольшая цитата из вики:
“OpenID — это открытая децентрализованная система единого входа, которая позволяет использовать один логин и пароль на большом количестве сайтов.”
Кроме того, пока я гуглил на эту тему, то наткнулся на примечательную статейку, даже немного в тему.
-
<link rel="openid.server" href="http://openid.yandex.ru/server.xml" />
-
<link rel="openid.delegate" href="http://openid.yandex.ru/users/your_user_name" />
Если у вас есть экаунт на яндексе, то вставив этот код в хеад вашего блога, то можно в виде опенайди урла указывать ваш блог. Но это уже отклонение от темы.
В нете есть уже решение этой темы. Так и называется django-openid, разработка Simon Willison, сделан на базе python-openid. Но в виду того, что и Django уже не тот, и python-openid двигается, у меня все падало – ввиду не правильного использования функций в самом джанговском модуле. Итого результат можно видеть уже тут.
Также я ещё создал отдельный файл урлов, так что использование сводится к следующему:
1. Как это не банально – скачиваем и распаковываем архивчик в папки с питоном или в папке вашего джанго проекта.
2. В INSTALLED_APPS добавляем django_openidconsumer и запускаем: python manage.py syncdb
3. В MIDDLEWARE_CLASSES добавляем django_openidconsumer.middleware.OpenIDMiddleware.
4. в urlconf добавляем
-
(r'^openid/',include('django_openidconsumer.urls'))
Теперь, о том, какие данные мы можем получить.
1. OpenID URL авторизованного пользователя лежит в str(request.openid)
2. Если вы хотите определить дополнительные действия для случая, когда пользователь успешно авторизовался либо не успешно, то можете передать его так:
-
(r'^openid/',include('django_openidconsumer.urls'),{'on_success':mysuccess_function,'on_failure':myfailure_function}),
3. OpenID паровайдер может возвратить дополнительные ключи, называемые simple registration, полусить к ним доступ можно через ключи хеша: request.openid.sreg. Но я тестил только на Яндексе, и у меня ничего пока не получалось
4. Если вам необходимо изменить сами страницы, а вам надо будет их изменить, то вам необходимо создать а корне папке с темплейтами следующие файлы: openid_signin.html и openid_failure.html. Примеры можете найти в папке templates архива.
Далее будет рассказано, как это можно удобно связать с базовой авторизацией Джанго… Не переключайте…
Recent Comments