Авторизация через Google
Google предлагает OAuth2 аутентификацию. Вы можете узнать больше о Google's OAuth2 пройдя по ссылке: https://developers.google.com/accounts/docs/OAuth2
Первое, что нам надо - получить API ключ в вашей Google Developer Console. Откройте https://console.developers.google.com/project и нажмите на кнопку Create project. Выберите имя для проекта и нажмите на кнопку Create.
После создания проекта нажмите на APIs & auth в левом меню, а затем кликните на Credentials. Нажмите на кнопку Add credentials и выберите пункт OAuth 2.0 client ID.
Google попросит вас сначала подтвердить соглашения. Это страница, которая будет показана пользователям для предоставления им согласия на доступ к вашему сайту с учетной записью Google. Нажмите кнопку Configure consent screen. Выберите свой адрес электронной почты, в Product name введите Bookmarks и нажмите кнопку Save.
Заполните форму следующими сведениями:
- Application type: Выберите Web application
- Name: Введите Bookmarks.
- Authorized redirect URIs: Вставьте http://mysite.com:8000/social-auth/complete/google-oauth2/
Форма должна вылядеть следующим образом:
Нажмите кнопку Create. Вы получите Client ID и Client Secret. Добавьте их в файл settings.py:
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '' # Google Consumer Key
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '' # Google Consumer Secret
В левом меню Google Developers Console в разделе APIs & auth щелкните ссылку APIs. Будет показан список, содержащий все Google APIs. Нажмите кнопку Google+ API и нажмите кнопку Enable API :
Измените шаблон login.html и добавьте следующий код к элементу <ul>
:
<li class="google">
<a href="{% url "social:begin" "google" %}">Login with Google</a>
</li>
Откройте в браузере http://mysite.com:8000/account/login/ . Страница входа должна выглядеть следующим образом:
Нажмите кнопку Login with Google. Вас перенаправит в Google и вы должны будете подтвердить соглашение о котором мы говорили ранее:
Нажмите кнопку Accept. Вы войдете в систему.
Мы добавили в наш проект вход через социальные сети. Модуль python-social-auth содержит возможности авторизации и для других популярных соц.сетей.