Аутентификация с помощью OAuth


Я работаю над тем, чтобы обдумать развязанный Drupal 8, используя приложение AngularJS для внешнего интерфейса. Что я пытаюсь сделать, так это разрешить пользователю проходить аутентификацию на моем сайте D8, используя свое имя пользователя и пароль, а затем предоставить им токен OAuth, который позволит им продолжать делать запросы.

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

Я возился с модулем simple_oath и jDrupal, но они, похоже, еще не совсем "там". Есть какие-нибудь предложения?

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

[ Редактировать] Я слышал противоречивые вещи об аутентификации файлов cookie/сеанса. Моя конечная цель - превратить это в приложение. Делает хранение файлов cookie/сеансов работает в мобильной среде?

Спасибо!

Author: lukedekker, 2017-01-17

1 answers

Я думаю, что ваше желание использовать Oauth оправдано. Однако, если у вас нет других вариантов, вы можете использовать аутентификацию с помощью файлов cookie. Я использовал его раньше и слышал о людях, которые тоже им пользовались. Вот некоторые вещи, которые следует иметь в виду, и вам было бы полезно использовать аутентификацию файлов cookie в своем мобильном приложении:

  • Вам придется увеличить время ожидания сеанса до длительного периода, скажем, 1 года или более. Это означает, что по истечении этого периода пользователю придется снова войти в систему. Кроме того, вы можете обновлять файл cookie при каждом запросе. Вам нужно будет:
    1. Измените настройки сеанса в настройках PHP
    2. Измените настройки сеанса в настройках Drupal
  • Вам нужно будет аутентифицировать пользователя, а затем создать механизм для сохранения идентификатора сеанса пользователя с помощью заголовка Set-Cookie.
  • Вам потребуется механизм для обработки сбоя при входе в систему, когда срок действия файла cookie сеанса истек. По истечении сеанса вы можете отправить пользователя на вход снова откройте страницу (возможно, с предварительно заполненным полем имени пользователя) и попросите снова войти в систему.
  • Поскольку длительное оставление сеанса открытым представляет угрозу безопасности, вы можете рассмотреть возможность использования других механизмов, таких как токены CSRF.

Примечание: Если вы настроены на эксперименты, вы также можете изучить Аутентификацию JWT. Кроме того, если вы ожидаете иметь огромную базу пользователей, вы можете рассмотреть такую услугу, как Firebase для хранения.

Надеюсь, это поможет. Счастливого кодирования!

 6
Author: Jigarius, 2017-01-23 22:43:26