2013-10-25 4 views
2

Я использую python-social-auth, и я успешно могу аутентифицировать пользователя с его учетной записью Facebook, но сохраняется только письмо. Как я:Сохранить дополнительную информацию для Facebook, прошедшего проверку подлинности?

  1. сохраняется день рождения?
  2. добавить и сохранить информацию, которая не исходит от FB, как его имя для домашних животных? (насколько я знаю, мне придется использовать трубопровод, но не знаю, как)

Любая помощь будет оценена.

Заранее благодарен!

PS: Будет ли кто-то с достаточной репутацией создать тег 'python-socialauth'?

ответ

2

Настойчивость родства так же проста, как определение SOCIAL_AUTH_FACEBOOK_EXTRA_DATA = [('birthdate', 'birthdate')], позже вы можете получить к нему доступ, выполнив user.social_auth.get(provider='facebook').extra_data['birthdate'].

Другие данные должны быть сохранены с помощью конвейера, что не так просто, но не сложно. Конвейер - это функция, которая будет вызываться во время процесса авторизации (даже при регистрации, входе в систему или в ассоциации, поэтому функции необходимо проверить, если это необходимо). Функция будет много параметров подобно strategy, backend, social, user, response, requests, details и т.д., то лучше, чтобы определить необходимые параметры, а затем использовать **kwargs игнорировать другие.

После того, как функция закодирована, она должна быть добавлена ​​к настройке SOCIAL_AUTH_PIPELINE (обязательно добавьте записи по умолчанию также, или процесс auth не будет работать, их можно найти здесь http://psa.matiasaguirre.net/docs/pipeline.html#authentication-pipeline).

+0

Следует ли добавить имя любимца в поле extra_data, если оно является форматированным полем json? Это вызовет у меня проблемы с python-social-auth? – PedroBoi

+0

Я не знаю, ясно ли я, но то, что я сказал, добавляло имя любимца, используя функцию конвейера. Понял? – PedroBoi

+2

Вы можете добавить все, что хотите, в 'extra_data', также вы можете добавить что-либо в' details' в функцию конвейера, а также определить имя в настройке '_EXTRA_DATA', и оно также будет сохранено. – omab

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

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