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
- ako sa vytvorí užívateľský účet django, keď sa užívateľ prihlási prostredníctvom tretej strany, ako je Facebook
- Aké používateľské meno je tomuto používateľovi pridelené a aké heslo sa používa.
- 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ď č. 1Vo 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:
- váš správcovský panel a uvidíme, čo sa stane, keď sa niekto prihlási.
- allauth.facebook.views.login a skúste sledovať proces prihlásenia
Je to niečo také (niekoľkými slovami):
- Keď sa používateľ prihlási na vaše stránky prostredníctvom svojich poverení na Facebooku, dostane prístupový token
- Tento token je uložený v tabuľke FACEBOOK_ACCESS_TOKENS (môžete ho vidieť na paneli správcu)
- S týmto prístupovým tokenom a pomocou Facebook GraphApi poznáme jeho social_id
- Keď poznáme jeho social_id - môžeme mať jeho Facebook účet z našej databázy
- Ak sme ich už do db neuložili - účet Facebook uložíme do tabuľky FACEBOOK_ACCOUNTS (Účty Facebook na paneli správcov)
- 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.