/ / Salvar informações adicionais para o usuário autenticado do Facebook? - python, django, facebook, django-socialauth

Salvar informações adicionais para o usuário autenticado do Facebook? - python, django, facebook, django-socialauth

Eu estou usando python-social-auth e eu sou capaz de autenticar um usuário com sua conta do Facebook, mas apenas o e-mail é persistente. Como é que eu:

  1. persiste o aniversário?
  2. adicionar e persistir informações que não vêm do FB, como seu nome de animal de estimação? (tanto quanto eu sei, eu vou ter que usar um pipeline, mas não sei como)

Qualquer ajuda será apreciada.

Desde já, obrigado!

PS: Alguém com reputação suficiente criaria uma tag "python-socialauth"?

Respostas:

2 para resposta № 1

A persistência de datas de nascimento é tão simples quanto definir SOCIAL_AUTH_FACEBOOK_EXTRA_DATA = [("birthdate", "birthdate")], depois você pode acessá-lo fazendo user.social_auth.get(provider="facebook").extra_data["birthdate"].

Outros dados devem ser salvos com um pipeline, quenão é tão simples, mas não é difícil de fazer. Um pipeline é uma função que será chamada durante o processo de autenticação (mesmo em inscrição, login ou associação, portanto, a função precisa verificar isso, se necessário). A função terá muitos parâmetros como o strategy, backend, social, user, response, requests, details, etc, é melhor definir os parâmetros necessários e, em seguida, usar **kwargs ignorar os outros.

Depois que a função é codificada, ela deve ser adicionada a SOCIAL_AUTH_PIPELINE configuração (não se esqueça de adicionar as entradas padrão também, ou o processo de autenticação não funciona, esses podem ser encontrados aqui http://psa.matiasaguirre.net/docs/pipeline.html#authentication-pipeline).