OpenApp Login¶
OA Login umożliwia bezhasłowe logowanie do sklepów online.
Wykorzystuje ono autentykację biometryczną urządzeń mobilnych, aby dać użytkownikom płynne doświadczenie logowania bez konieczności wprowadzania jakichkolwiek danych.
W połączeniu z OA Checkout umożliwia całkowiecie płynne doświadczenie zakupowe - bez ręcznego wprowadzania jakichkolwiek danych w procesie zakupowym.
OA Login jest zaprojektowany z myślą o bezpieczeństwie i zapewnieniu użytkownikom pełnej kontroli nad procesem. Przed pierwszym logowaniem do sklepu, użytkownik widzi na swoim telefonie nazwę sklepu do którego się loguje i klika OK. W ten sposób, nawet w przypadku manipulacji kodem QR przez hackera na stronie sklepu, żadne dane użytkownika nie zostaną przesłane do sklepu innego niż oczekuje tego użytkownik.
Pierwsze logowanie w sklepie¶
sequenceDiagram
autonumber
participant Merchant
participant User
participant OpenApp app
participant OA API
activate User
User->>+Merchant: zaloguj
Merchant ->>-User: pokaż OA Widget
User->>+OpenApp app: skan kodu QR lub tap w Widget
OpenApp app->>+OA API: uzyskaj dane sklepu
OA API->>-OpenApp app: dane sklepu
OpenApp app->>-User: pokaż dane sklepu
User->>+OpenApp app: OK
OpenApp app->>-User: pokaż ekran biometrii
User->>+OpenApp app: skan twarzy / palca
OpenApp app->>+OA API: OK
OA API->>+Merchant: dane użytkownika
Merchant->>OA API: OK
OA API->>-OpenApp app: OK
OpenApp app->>User: OK
OpenApp app->>OpenApp app: zamknij
deactivate OpenApp app
Merchant->>User: Witamy w sklepie...
deactivate User
Kolejne logowanie w sklepie¶
Przy każdym kolejnym logowaniu do sklepu użytkownik nie musi już dodatkowo potwierdzać logowania - wystarczy skan kodu QR lub tapnięcie widgetu OA.
sequenceDiagram
autonumber
participant Merchant
participant User
participant OpenApp app
participant OA API
activate User
User->>+Merchant: zaloguj
Merchant ->>-User: pokaż OA Widget
User->>+OpenApp app: skan kodu QR lub tap w Widget
OpenApp app->>+OA API: uzyskaj dane sklepu
OA API->>-OpenApp app: dane sklepu
OpenApp app->>-User: pokaż ekran biometrii
User->>+OpenApp app: skan twarzy / palca
OpenApp app->>+OA API: OK
OA API->>+Merchant: dane użytkownika
Merchant->>OA API: OK
OA API->>-OpenApp app: OK
OpenApp app->>User: OK
OpenApp app->>OpenApp app: zamknij
deactivate OpenApp app
Merchant->>User: Witamy w sklepie...
deactivate User
Dane wysyłane do sklepu¶
Sklep otrzymuje zawsze tylko anonimowy adres email użytkownika.
Adres email jest generowany dla unikalnego połączenia użytkownika i danego sklepu. Adres email jest taki sam przy każdym logowaniu i zakupie użytkownika w sklepie, co pozwala na trackowanie zamówień i aktywności klienta w sklepie.
Bezpieczeństwo sesji¶
Zabezpieczenie przed wielokrotnym skanowaniem tego samego kodu QR leży po stronie sklepu: OA silnie rekomenduje, aby sklep pozwalał jedynie na działnie usługi OA Login w trybie od "sesji niezautentykowanej" do "sesji zautentykowanej". Odpowiedzialnością sklepu jest zapewnienie, aby ponowny skan tego samego kodu QR (lub tapięcia w widget) nie umożliwiał przełączenie zautentykowanej sesji do innej tożsamości (session stealing). Zautentykowana sesja nie powinna pokazywać wogóle widgetu OA Login.
Request¶
Po potwierdzeniu przez użytkownika, że chce się zalgować w danym sklepie, OA prześle dane identyfikujące użytkownika oraz token sesji, co pozwoli na powiązanie tożsamości z aktywną sesją. To jest request HTTP POST z serwera OpenApp do endpointu skonfigurowanego w panelu OA sklepu, zawierający tożsamość i token w body wiadomości:
Jeśli skonfigurowałeś wartość https://shop.example.com/api/openapp/identity
a token to 56465affa646as4fa6f64fd5a
, request wysłany przez OpenApp będzie następujący:
{
"description": "The identity of the user",
"additionalProperties": false,
"type": "object",
"properties": {
"email": {
"description": "The unique email address of the user.",
"type": "string",
"title": "email"
},
"token": {
"description": "The session token.",
"type": "string",
"title": "token"
}
},
"required": [
"email",
"token"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
Odpowiedź¶
W odpowiedzi, sklep powinien wysłać odpowiedź HTTP ze kodem statusu 200. Reszta danych będzie zignorowana.