+420 603 755 610
info@inited.cz
flagEnglish (Angličtina)
flagČeština
INITED Solutions s.r.o.
  • Domů
  • Služby
    • Vývoj mobilních aplikací
    • Záchrana projektů
    • Konzultace
    • Provoz a rozvoj mobilních aplikací
  • Pro agentury
  • Ukázky naší práce
  • Blog
  • Kontakt

Jak funguje přihlášení přes Facebook

29.12.2021Jaroslav Pavlíček

Obrázek ukazuje proces, jak přihlášení probíhá:
1. uživatel stiskne tlačítko „Přihlásit přes FB“
2. aplikace zavolá FB SDK
3. FB SDK zobrazí výzvu pro přihlášení. Pokud byl uživatel přihlášen v minulosti, tak ne.
4. Uživatel se přihlásí
5. FB SDK vrátí zpět token a požadované údaje
6. pokud se jedná o aplikaci bez backendu, proces končí
7. aplikace odešle token na backend
8. backend odešle dotaz na FB backend
9. FB backend vrátí požadovaná dat
10. uživatel je do aplikace přihlášen

Jak funguje přihlášení přes Facebook

Jak funguje přihlášení přes Facebook

Aby přihlášení přes Facebook v mobilní aplikaci fungovalo, je třeba zajistit několik věcí:

1. Zaregistrovat mobilní aplikaci v developerském účtu FB
Registrace se provádí pro každou platformu zvlášt. iOS verze je vázaná na package id, Android verze na podepisovací certifikát.
Při registraci je třeba vyjmenovat údaje, o které budeme v mobilní aplikaci žádat.
Některé (veřejný profil, emailová adresa) jsou k dispozici ve výchozím nastavení, o některé je třeba požádat a nechat si žádost schválit.
Schvalovací proces může být zdlouhavý, ve většině případů je třeba přiložit video s ukázkou, jak je daný údaj využíván.

2. Použít správné knihovny FB SDK nebo odpovídající pluginy
U knihoven je třeba dát pozor na použitou verzi. FB průběžně vydává nové a zvyšuje nejnižší možnou používanou verzi.
Použití nejnovějších knihoven může vyvolat konflikty s ostatními knihovnami, které jsou v projektu použité.

Pokud mobilní aplikaci vyvíjíte také pro iOS, stojí za zmínku povinnost nabídnout uživateli přihlášení přes Apple ID. (Takto vypadá zamítnutí aplikace díky chybějícímu přihlášení přes Apple ID)

Detailní popis procesu přihlášení

1. uživatel stiskne tlačítko „Přihlásit přes FB“

Zobrazení tlačítka je v režii mobilní aplikace. Vývojář je zodpovědný za jeho vzhled a umístění. Odpovídající instrukce a pravidla jsou na oficiálních stránkách Facebooku.

2. aplikace zavolá FB SDK

Mobilní aplikace zavolá metodu login z FB SDK. Při volání uvede seznam údajů, o které údaje uživatele se žádá.
Volání je asynchronní.

Volání může v případě vývoje mobilních aplikací na platformě Ionic může vypadat takto:

const result: FacebookLoginResponse = await this.fb.login(['email', 'public_profile', 'user_birthday']);

3. FB SDK zobrazí výzvu pro přihlášení.

První a následující přihlášení jsou různá. Při prvním při prvním přihlášení se zobrazují dvě výzvy:
1. důvěra aplikaci a poskytnutí údajů
2. přihlášení

Při dalších přihlášení se již nemusí zobrazit.

4. Uživatel se přihlásí

Přihlášení může proběhnout dvěma způsoby:

  1. pokud je nainstalovaná aplikace, tak přes aplikaci
  2. pokud uživatel nemá nainstalovanou aplikaci, tak přes web view

5. FB SDK vrátí zpět do mobilní aplikace token a požadované údaje

Po návratu je vhodné provést kontrolu, zda uživatel poskytl všechny potřebné požadované údaje. Není dobré spoléhat na to, že se vrátí vše vyplněné. Uživatel může poskytnutí údajů odmítnout nebo je nemusí mít v profilu uvedené. V některých případech se stává, že se nevrátí ani email.

Také není výjimkou, že FB SDK vrátí chybu i když pro to z pohledu uživatele není žádný zjevný důvod. Přihlášení stačí v tomto případě zopakovat.

Každopádně v případě úspěšného přihlášení se vždy vrací token, se kterým je následně možné volat funkce FB backendu.

6. Mobilní aplikace volá backend

Pokud se jedná o aplikaci bez backendu, proces končí. Pokud probíhá část přihlašovacího procesu na serveru, odešle aplikace token na backend, kde přihlašovací proces pokračuje.

7. backend se dotazuje FB

Jako parametr se posílá token a seznam požadovaných údajů. Volání v PHP může vypadat např. takto:

    $url='https://graph.facebook.com/me/?fields=id,name,first_name,last_name,email&access_token=' . $token;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $enable_ssl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$url);
    $result=curl_exec($ch);
    curl_close($ch);
    $result = json_decode($result, true);

8. FB backend vrátí požadovaná data

V případě, že je token správný, vrátí FB backend požadovaná data:

{
 "id": "10213800602678470",
 "name": "Jarda Pavlíček",
 "first_name": "Jarda",
 "last_name": "Pavlíček",
 "email": "all@pavrda.cz"
 }

9. backend provede přihlášení uživatele a vrací informaci do aplikace

Na straně backendu je třeba rozlišovat dvě situace: 1. registrace (= první přihlášení uživatele), 2. přihlášení (= opakované přihlášení uživatele)
Z pohledu FB backendu se totiž jedná o stejnou akci a nerozlišuje se to.

Za zmínku stojí otázka, jaký údaj používat v aplikacích jako jednoznačný identifikátor uživatele. Zkušenost ukazuje, že krátkodobě a pro malý rozsah uživatelů je možné vystačit s emailem. Vhodnější je však používat FB id. Zkušenost ukazuje, že email není vždy poskytnut a je možné si jej změnit.

10. zpracování na straně mobilní aplikace

Mobilní aplikace obdrží od backendu informace o úspěšném přihlášení a pravděpodobně i další informace o uživateli. Je na ní dokončit proces přihlášení na své straně a informovat o tom uživatele.

Tím je proces přihlášení dokončen.

Technické detaily a části kódů lze nalézt v knihovně znalostí.

Závěr

Přihlášení přes Facebook je oblíbenou metodou autentizace uživatelů, která má oproti klasickému přihlášení jménem a heslem výhodu v jednodušší implementaci a výsledné vyšší bezpečnosti celé aplikace. Nevýhodou je povinnost implementovat na platformě iOS také přihlášení přes Apple ID.

Z dlouhodobého pohledu je také třeba pamatovat na nutnost průběžně aktualizovat v aplikaci knihovny FB SDK a reagovat na výzvy a požadavky, které přicházejí z Facebooku.

Jaroslav Pavlíček
Jaroslav je certifikovaný architekt (TOGAF) s 25+ lety praxe v IT. Díky tomu mají naše mobilní aplikace vysokou technickou úroveň a jsou postavené na spolehlivých technologiích. Své zkušenosti získával na projektech v zahraničí (Velká Británie, Malta) a vedle INITED působí jako konzultant Adobe Experience Manager, AEM.
Předchozí článek TOP 5 novinek ze světa aplikací a mobilních technologií roku 2021 Další článek Co obsahují Google Analytics mobilní aplikace

Related Articles

Žena pracující se skládacím mobilem.

Mobilní aplikace pro skládací telefony: Myslete na různé režimy i ovládání

23.11.2022Jaroslav Pavlíček
Mobilní telefon s velkým nápisem ERROR.

Vaše „aplikace neodpovídá“? Hrozí vám propad v Google Play a App Store

7.12.2022Jaroslav Pavlíček

Jak navrhnout aplikaci? 7 věcí, které si musíte předem promyslet

9.3.2022Jana Marková

Kategorie článků

  • Marketing a prodej (26)
  • Mobilní aplikace (47)
  • Mobilní telefony a HW/Ostatní (13)
  • Ostatní (13)
  • Top (5)
  • Trendy (39)
  • Z naší dílny (20)

Přečtěte si také

  • Jana Marková: Mobilní, nebo webová aplikace? Někdy je nejlepší mít obě
  • Apple umožňuje publikovat aplikace v alternativních obchodech. Jaké jsou podmínky?
  • Od nápadu na aplikaci k dokonalému projektu: 6 kroků, které musíte ujít
  • 6 rozdílů mezi ASO pro App Store a pro Google Play
  • Hodinová sazba za vývoj mobilní aplikace: jak se liší u freelancerů a agentur
  • Cena vývoje mobilní aplikace 2024
  • Co jsou widgety a proč se vyplatí i vaší aplikaci
  • Chcete, aby vaše aplikace zůstala na Google Play? Musíte ji aktualizovat!
  • 7 trendů ve vývoji mobilních aplikací pro rok 2024
  • Povinné ověření účtů vývojářů na Google Play
  • Jak funguje našich 6 etap vývoje mobilních aplikací
  • Nebuďte součástí hloupých předsudků a pověr! Můžete tím přijít o peníze i o zákazníky
  • Máte aktuální API? Bez ní vás někteří uživatelé v Google Play nenajdou
  • UX mobilní aplikace: 3 věci, na které musíte myslet
  • AI na vlastní kůži: Jak vypadá aplikace s texty od ChatGPT
  • Proč je práce z domova okolím vnímána jako podřadnější než práce v kanceláři?
  • 3 největší novinky, které přinese Google Pixel 8
  • 6 technologií, které vylepší vaši aplikaci
  • 5 tipů, jak využít umělou inteligenci v mobilní aplikaci
  • 7 nejčastějších chyb, které firmy dělají v ASO

Ahoj 123

blablabl

  • Domů
  • Služby
  • Pro agentury
  • Ukázky naší práce
  • Blog
  • Náš tým
  • Kontakt
© 2023 Created by Provocado
Na tomto webu používáme cookies
Cookies nám pomáhají vidět realitu - co návštěvníky zajímá, co čtou a co naopak přeskakují. Používáme Google Analytics, Google Fonts aYouTube. Více o cookies, najdete v dokumentu níže.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage vendors Read more about these purposes
Předvolby
{title} {title} {title}