Я разрабатываю приложение, используя Laravel 4, где мне нужно иметь 2 типа аутентификации.Laravel двойные типы аутентификации
Тип 1: Пользователи - администраторы/бэк-офисные сотрудники системы.
Тип 2: Клиенты - которые являются посетителями сайта, которые могут выполнять определенные функции (например, услуги покупки), если они аутентифицированы.
Пользователи 1-го типа аутентифицируются с использованием имени пользователя/пароля, что идеально подходит для модели аутентификации Laravel.
Клиенты Type 2 будут аутентифицированы либо с использованием стиля OAuth (с Google/Facebook), либо с помощью ручной аутентификации, если клиент предпочитает. Я не хочу смешивать их вместе, поэтому, если вы авторизованы как клиент, я не хочу, чтобы фильтр проверки подлинности думал, что вы можете получить доступ к страницам администратора, и наоборот.
У двух типов будут свои собственные таблицы (соответственно пользователи и клиенты). Есть ли способ, чтобы какая-то другая модель Auth работала одновременно? Или я должен написать свое собственное дело для клиентов? Каков рекомендуемый подход в этом сценарии?
Мой вопрос больше связан с класса 'Auth'. Должен ли я разработать свой собственный драйвер Auth (поскольку я не обязательно аутентифицирую использование имени пользователя и пароля для клиентов, но используя OAuth)? Как мой 'Auth: check()' будет различать два типа аутентификации? Я, очевидно, мог бы прибегать к тому, чтобы не использовать Auth вообще для клиентов и вводить новый класс, но я не хочу изобретать велосипед, если есть что-то, предназначенное для этого сценария. – jbx
В этом случае вы, вероятно, хотите обрабатывать свой логин OAuth отдельно, но при этом использовать модель Auth для обработки пользовательских сеансов. Это можно сделать, используя метод Auth :: login. После вызова Auth :: login ($ user) вы можете продолжать использовать модель Auth как обычно –
Так что, по сути, вы предлагаете, что я использую 'Auth' для своих пользователей, но моя собственная вещь для« Клиентов », и у меня есть отдельный фильтр для страниц клиента, который использует мою собственную вещь, а не 'Auth'. Я прав? – jbx