Создание пользовательской аутентификации на основе 2 разных типов пользователей в Apex - PullRequest
5 голосов
/ 27 марта 2019

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

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

Моя текущая схема аутентификациипоказано ниже.

FUNCTION authenticate(p_username IN VARCHAR2
  ,p_password IN VARCHAR2) RETURN BOOLEAN IS
   l_value       NUMBER;
   l_returnvalue BOOLEAN;
 BEGIN
   BEGIN
     SELECT 1
       INTO l_value
       FROM employer
      WHERE 1 = 1
        AND upper(employer.username) = upper(p_username)
        AND upper(employer.passwords) = upper(p_password);
   EXCEPTION
     WHEN no_data_found
          OR too_many_rows THEN
       l_value := 0;
     WHEN OTHERS THEN
       l_value := 0;
   END;
   l_returnvalue := l_value = 1;
   RETURN l_returnvalue;
 END;     

1 Ответ

4 голосов
/ 27 марта 2019

Это проблема «Схема авторизации», а не проблема «Схема аутентификации».

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

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

Например: если у пользователя есть схема авторизации x, затем отправьте ее на страницу 2, в противном случае отправьте их на страницу 3.

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

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

И / или просмотреть пример в справке атрибута:

enter image description here

...