oracle apex аутентификация по электронной почте и смс - PullRequest
0 голосов
/ 24 октября 2018

Я хочу создать экран пользователя с двумя аутентификациями (SMS и электронная почта). Пользователь получит письмо для проверки и активации своей учетной записи.После этого он установил пароль и получит SMS-массаж для подтверждения пароля. Я хочу сделать это в Oracle apex. Я пробовал Custom Authentication, но я не нашел плодотворного. У любого есть хорошая идея для достижения этой цели.

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Я не фанат использования SMS для двухфакторной аутентификации, но, если вам необходимо, возможно, эта демонстрационная реализация для одноразового пароля на основе времени (TOTP) может дать вам несколько идей: https://github.com/fuzziebrain/orclapex-tfa-demo

Я также предоставил некоторую справочную информацию: https://fuzziebrain.com/content/id/1718/

Удачи!

0 голосов
/ 25 октября 2018

Я добился этого в одном из моих проектов APEX, но только с помощью электронной почты.Для смс я использую это в другом контексте, но вы все равно можете это сделать.Вам понадобится SMTP-сервер (вы можете запустить его на своем сервере), а для смс вам понадобится внешний поставщик.В вашей базе данных Oracle создайте таблицу с именем OTP (одноразовый пароль).

Эта таблица содержит внешний ключ для пользователя.Когда пользователь создает учетную запись, запустите динамическое действие в pl / sql, которое сгенерирует случайное 6-значное число, которое будет зашифровано в вашей таблице OTP.Это динамическое действие также отправит пользователю электронное письмо с APEX_MAIL.Полная документация по использованию APEX-MAIL здесь , и она довольно проста в использовании.Вы можете отправить пользователю пароль для аутентификации через электронную почту.

Создайте нового пользователя сеанса с именем user_na (не прошедшего проверку подлинности) и сделайте так, чтобы при подключении единственной страницей, которую он мог видеть, была страница с текстовым полем для ввода пароля, который он получал по электронной почте.После того, как он введет его, зашифруйте его так же, как при создании учетной записи, и сравните пароль в таблице OTP.Если они совпадают, измените его тип учетной записи на пользователя, и тогда он сможет получить доступ к каждой странице, которую вы сделали доступной для пользователей.

Если вы также хотите отправить смс, я рекомендую использовать этот учебник .У провайдера смс есть бесплатная пробная версия, если вы хотите проверить.Если у вас есть какие-либо вопросы, не стесняйтесь их задавать, я могу легко помочь вам в этом.

ПРИМЕЧАНИЕ : если вы не хотите создавать разные session_users, вы можете просто добавить столбец вВаша пользовательская таблица с именем authenticated.Установите его в 0 по умолчанию и в 1, когда он вводит пароль электронной почты.Затем, когда он войдет в систему, проверьте, равно ли это значение 0 или 1, чтобы узнать, на какую страницу его следует перенаправить.

0 голосов
/ 24 октября 2018

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

поместитефункция в общих компонентах -> схемы аутентификации -> настройки -> имя функции аутентификации

(функция должна возвращать true или false, чтобы разрешить вход в систему)

...