Budeme stavať mobilné aplikácie (iOS a Android), ktoré vyžadujú backend API REST a integráciu s Facebookom na autentifikáciu.
Stále mám zmätený, čo je najlepší dizajn architektúry pre tento druh použitia.
Hlavná otázka: Kto je zodpovedný za autentifikáciu / autorizáciu prostredníctvom Facebooku, klienta alebo servera?
Možnosť A: Klient sa overuje FB. Klient odosiela žiadosti pomocou tokenu, ktorý dostal od spoločnosti Facebook. Server používa tento identifikátor na identifikáciu používateľa.
Možnosť B: Server sa overuje FB v mene klienta.
Ďalšie poznámky (môžu byť relevantné alebo nie):
- Rozvíjam časť REST API pomocou Django.
- Aplikácia bude potrebovať prístup k užívateľom Facebooku, aby sme ich mohli pozvať na používanie aplikácie.
odpovede:
2 pre odpoveď č. 1Mali by ste ísť s možnosťou A.
- Autentizujte sa s klientom. Potom dostanete prístupový token.
- Odošlite tento token na server.
- Teraz môžete vytvoriť používateľa, vyzdvihnúť priateľov FB a všetky ostatné, ktoré budete potrebovať.
Ak používate django-rest-framework, mali by ste sa pozrieť na balík django-rest-auth. Zaoberá sa prihlásením / vytvorením používateľa na strane servera pomocou prístupového tokenu.
https://django-rest-auth.readthedocs.org/en/latest/installation.html#social-authentication-optional
0 pre odpoveď č. 2
Môžete sa pozrieť na SDK pre systém Google pre Python, malo by vám povedať, ako ho začleniť do aplikácie a ukazuje, ako sa integrovať s niekoľkými rámcami tu (Flask je podobný tomu django).
Spoločnosť Facebook bude robiť overovanie na svojej strane, nie vy, aj keď možno budete chcieť uložiť token používateľa do databázy.