/ / Ako funguje allauth, keď sa užívateľ prihlasuje prostredníctvom sociálnej registrácie - django, registrácia, sociálne, užívateľský profil, django-allauth

Ako funguje allauth, keď sa používateľ prihlási cez sociálnu registráciu - django, registrácia, sociálne, užívateľský profil, django-allauth

Snažil som sa použiť Django-allauth poskytnúť sociálnu registráciu, ale mám problémy s konfiguráciou profilov pre používateľa. Neexistuje žiadna dokumentácia django-alauthu, ktorá by hovorila

  1. ako sa vytvorí užívateľský účet django, keď sa užívateľ prihlási prostredníctvom tretej strany, ako je Facebook
  2. Aké používateľské meno je tomuto používateľovi pridelené a aké heslo sa používa.
  3. Niektorí poskytovatelia tretích strán, ako napríklad Facebook, poskytujú veľa informácií o používateľovi, ako je napríklad jeho meno, e-mail atď. Ako ich teda môžeme získať a uložiť do používateľského účtu / profilu

Ak niekto použil pri svojich projektoch výživné a môže poskytnúť nejaké podrobnosti, bolo by to skutočne užitočné.

odpovede:

10 pre odpoveď č. 1

Vo svojom projekte používam django_allauth.

(1) Ako sa vytvorí užívateľský účet django, keď sa užívateľ prihlási prostredníctvom tretej strany, ako je napríklad Facebook?

Mali by ste sa pozrieť na:

  1. váš správcovský panel a uvidíme, čo sa stane, keď sa niekto prihlási.
  2. allauth.facebook.views.login a skúste sledovať proces prihlásenia

Je to niečo také (niekoľkými slovami):

  1. Keď sa používateľ prihlási na vaše stránky prostredníctvom svojich poverení na Facebooku, dostane prístupový token
  2. Tento token je uložený v tabuľke FACEBOOK_ACCESS_TOKENS (môžete ho vidieť na paneli správcu)
  3. S týmto prístupovým tokenom a pomocou Facebook GraphApi poznáme jeho social_id
  4. Keď poznáme jeho social_id - môžeme mať jeho Facebook účet z našej databázy
  5. Ak sme ich už do db neuložili - účet Facebook uložíme do tabuľky FACEBOOK_ACCOUNTS (Účty Facebook na paneli správcov)
  6. Potom vytvoríme používateľa v tabuľke USERS s údajmi nachádzajúcimi sa na účte Facebook. (nového používateľa môžete vidieť v sekcii Používatelia na paneli správcu)


(2) Aké používateľské meno je tomuto používateľovi pridelené a aké heslo sa používa?

Ako som už spomenul s pomocou Facebook GraphApi dostaneme užívateľské meno používateľa Facebook a je priradené k užívateľskému profilu pod menom User.username


(3) Niektorí poskytovatelia tretích strán, ako napríklad Facebook, poskytujú veľa informácií o užívateľovi, ako sú jeho meno, e-mail atď. Ako ich teda môžeme získať a uložiť do používateľského účtu / profilu?

Opäť - Facebook GraphApi - získate potrebné informácie.

Integroval som do svojej stránky django_allauth a funguje to správne. Ak máte ďalšie otázky, rád odpoviem (ak môžem).


UPRAVIŤ - Pre podporu avatar ...

Myslím, že sa musíte pozrieť na nastavenia django_allauth a najmä v:

SOCIALACCOUNT_AVATAR_SUPPORT (= "avatar" v nastaveniach.STALLED_APPS)

Povoliť podporu pre django-avatar. Ak je povolený, profilový obrázok používateľ sa pri registrácii skopíruje lokálne do django-avataru.