2015-05-23 5 views
0

У меня есть проект, над которым я работаю, для чего требуется, чтобы некоторые пользователи были аутентифицированы через facebook и другие, чтобы зарегистрироваться с помощью пользовательской модели. Пользователи facebook не будут иметь одинаковые учетные данные в качестве настраиваемой модели. Например, будет зарегистрирован владелец ресторана и регистрация клиента. Заказчику не нужно будет размещать адрес уличного адреса, он может просто войти в систему.Django Интеграция Python Social Auth и по умолчанию Auth с пользовательской моделью пользователя:

Мои намерения состоят в том, чтобы владельцы ресторанов регистрировались через пользовательскую модель профиля и пользователей Facebook, чтобы просто входить в систему через defualt social auth, но всякий раз, когда я совмещаю их, социальный auth начинает использовать пользовательскую модель, потому что я определяю пользовательская модель в настройках. Есть ли способ отличить от python social auth backend, чтобы использовать только по умолчанию или способ обновить текущую пользовательскую модель, чтобы иметь сегмент facebook. Я долго искал в Интернете, но не могу найти ничего, что могло бы объединить два, кроме (1), но это не сработало. Тем не менее, я могу успешно работать с одним или другим в зависимости от того, укажу ли пользовательскую модель в файле settings.py или нет.

Это довольно просто, но я не знаю, как получить социальную аутентификацию, чтобы посмотреть ее аутентификацию по умолчанию и djangos, чтобы посмотреть на мою пользовательскую модель.

(1) - http://code.techandstartup.com/django/profiles/

ответ

2

Для того, чтобы отличить один тип пользователя от другого, вы можете сделать что-то вроде этого:

Первый, в файле настроек, сохраните следующее:

FIELDS_STORED_IN_SESSION = ['type'] 

Это будет храниться в strategy параметра в каждой функции трубопровода

Затем, по возможности, смените трубопровод. Например, в вашей функции трубопровода create_user вы можете сделать это:

user_type = strategy.session_get('type') 

if user_type != 'customuser': 
    return { 
     'is_new': True, 
     'user': strategy.create_user(**fields) 
    } 
else: 
    return { 
     'is_new': True, 
     'user': create_restaurant(**fields) 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^