Перейти к содержимому

Как сделать авторизацию на сайте через гугл

  • автор:

Способы создания авторизации на сайте. Руководство с примерами. Безопасность в браузере

В данной статье мы разберем 4 способа как зарегистрировать нового пользователя: Сторонние сервисы авторизации (такие как Google), Авторизация с использованием токенов, Авторизация с помощью номера телефона, Логин + Пароль. Статья даст вам конкретный алгоритм реализации каждого способа. Необходимые библиотеки, а также примеры кода. Я постараюсь приводить в пример реализацию на чистейшем JavaScript, для того чтобы вы смогли внедрить функционал в свое проект, не зависимо от используемого фреймворка, однако также будут примеры для тандема Angular + Asp .Net Core. Мы обсудим как защитить ваш сайт от взлома. На сколько это сложно и возможно ли в принципе гарантировать 100% защиту. Итак, давайте приступим.

Регистрация. Аутентификация. Авторизация.

И прежде чем подходить к конкретным примерам, давайте разберемся какие процессы происходят в момент когда пользователь нажимает на кнопку Sign In и Sign Up.

Начнем с процесса регистрации. Перед вами форма с несколькими полями: Имя, Логин, Пароль, Кличка вашей собаки и т.д. Вы покорно заполняете все поля со звездочками, после чего жмякаете на кнопку “Зарегистрироваться”. Ваши данные отправляются на сервер при помощи HTTP, сервер создает в базе данных новую запись, и если все проходит успешно, то вы зарегистрировались в системе. То есть процесс регистрации – это просто сохранение на сервере “в определенном текстовом файле” данных, которые вы заполнили на сайте.

Это пример самого простого способа регистрации, который только можно представить. В реальности так никогда не делают, но вот общий принцип неизменен. Более подробно, как происходит процесс регистрации в современных системах, мы разберем позднее, а сейчас давайте взглянем на процесс авторизации.

Когда вы заходите в свой аккаунт в социальной сети, то у вас отображаются только ваши фотографии, видео и посты. Тоже самое происходит, для любого другого человека и это не кажется странным. Но все данные, о том сколько у вас картинок, историю сообщений и даже рекомендации, которые заточены именно под вас, нужно где-то хранить. Хранить их нужно очевидно на сервере, т.к если сохранить эти данные в браузере, то они будут доступны вам, только с одного устройства (где вы регистрировались). Как уже было сказано, при регистрации, для каждого пользователя создается “файл” на жестком диске сервера, в котором будут храниться все данные. В момент авторизации, данные, введенного вами логина и пароля отправляются на сервер, где среди всех файлов, относящихся разным людям по логину ищется именно ваш, после чего проверяется соответствует ли отправленный пароль, тому который сохранен в файле и если да, то в браузер возвращаются необходимые данные пользователя. То есть процесс авторизации – это получение с сервера нужных данных о пользователе.

Разница между аутентификацией, идентификацией и авторизацией

По большому счету – это разные этапы одного процесса (предоставление доступа пользователю).

Как сделать авторизацию через гугл?

На сайте надо сделать авторизацию через гугл, также должна быть функция доступа к гмейл аккаунту пользователя для чтения списка контактов, удаления и отправки писем.
1.Возможно ли сделать авторизацию находясь в РФ? Не вижу при регистрации страны в списке
2.Есть ли дополнительная проверка от гугла, чтобы получить разрешение на управление письмами? Вроде нужен дорогой аудит на безопасность. Где можно подробнее прочитать?

  • Вопрос задан более года назад
  • 259 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 1

dimonchik2013

Dimonchik @dimonchik2013

non progredi est regredi

сомневаюсь что гугл даст доступ к письмам по логину стороннему приложению

Ответ написан более года назад

Авторизация через Google

Первое, что нам надо — получить 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 :

Откройте в браузере http://mysite.com:8000/account/login/ . Страница входа должна выглядеть следующим образом:

Нажмите кнопку Login with Google. Вас перенаправит в Google и вы должны будете подтвердить соглашение о котором мы говорили ранее:

Нажмите кнопку Accept. Вы войдете в систему.

Мы добавили в наш проект вход через социальные сети. Модуль python-social-auth содержит возможности авторизации и для других популярных соц.сетей.

results matching » «

No results matching » «

Авторизация запросов

Когда ваше приложение запрашивает конфиденциальную информацию, запрос должен подтвердить аутентифицированный пользователь, у которого есть к ней доступ.

Все запросы, отправляемые приложением в Indexing API, должны содержать токен авторизации, который одновременно является идентификатором этого приложения для Google.

Протоколы авторизации

Для авторизации запросов ваше приложение должно использовать протокол OAuth 2.0. Другие протоколы авторизации не поддерживаются. Если в вашем приложении используется вход с аккаунтом Google, некоторые действия в рамках авторизации выполняются автоматически.

Авторизация запросов с помощью протокола OAuth 2.0

Для всех запросов к Indexing API требуется авторизация от пользователя, прошедшего аутентификацию.

Особенности авторизации с помощью протокола OAuth 2.0 зависят от типа приложения. В общих чертах процедура выглядит так:

  1. Сначала приложение нужно зарегистрировать через Google API Console. В результате вы получите информацию, которая понадобится вам позже, например идентификатор и секретный код клиента.
  2. Вы активируете Indexing API в Google API Console. Если такого API в консоли нет, пропустите этот шаг.
  3. Если приложению требуются пользовательские данные, оно запрашивает у Google нужную область доступа.
  4. Google показывает пользователю окно запроса доступа с предложением авторизовать приложение для запроса этих данных.
  5. Если пользователь соглашается, Google предоставляет приложению токен доступа с коротким сроком действия.
  6. Ваше приложение запрашивает пользовательские данные, указывая токен доступа.
  7. Получив действительный запрос и токен, Google отправляет необходимые данные.

Иногда процесс может включать дополнительные этапы, например использование токенов обновления для получения новых токенов доступа. Подробную информацию о процедуре для приложений различных типов можно найти в документации по OAuth 2.0.

Информация об области действия OAuth 2.0 для Indexing API:

Область доступа Значение
https://www.googleapis.com/auth/indexing Доступ с правом чтения/записи

Чтобы запросить доступ с помощью OAuth 2.0, приложению нужна информация об области доступа, а также данные, которые Google предоставляет при регистрации приложения (например, идентификатор или секретный ключ клиента).

Совет. Клиентские библиотеки API Google автоматически выполняют часть задач, связанных с авторизацией. Они доступны для разных языков программирования. Ознакомьтесь с дополнительными материалами.

Отправить отзыв

Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.

Последнее обновление: 2023-12-04 UTC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *