2021-10-08 12:39:31 +00:00
|
|
|
<!--
|
|
|
|
SPDX-FileCopyrightText: 2021 The NGI Pointer Secure-Scuttlebutt Team of 2020/2021
|
|
|
|
|
|
|
|
SPDX-License-Identifier: CC0-1.0
|
|
|
|
-->
|
|
|
|
|
2021-05-31 12:24:10 +00:00
|
|
|
# Architecture
|
|
|
|
|
|
|
|
## Invite flow
|
|
|
|
|
|
|
|
This implementation of Rooms 2.0 is compliant with the [Rooms 2.0
|
2022-11-07 09:18:13 +00:00
|
|
|
specification](https://github.com/ssbc/rooms2), but we add a few additional features
|
2021-05-31 12:24:10 +00:00
|
|
|
and pages in order to improve user experience when their SSB app does not support [SSB
|
2022-11-07 09:18:13 +00:00
|
|
|
URIs](https://github.com/ssbc/ssb-uri-spec).
|
2021-05-31 12:24:10 +00:00
|
|
|
|
|
|
|
A summary can be seen in the following chart:
|
|
|
|
|
|
|
|
![Chart](./images/invites-chart.png)
|
|
|
|
|
|
|
|
When the browser and operating system detects no support for opening SSB URIs, we redirect to a
|
|
|
|
fallback page which presents the user with two broad options: (1) install an SSB app that
|
|
|
|
supports SSB URIs, (2) link to another page where the user can manually input the user's SSB ID
|
|
|
|
in a form.
|
|
|
|
|
|
|
|
## Sign-in flow
|
|
|
|
|
|
|
|
This implementation is compliant with [SSB HTTP
|
2022-11-07 09:18:13 +00:00
|
|
|
Authentication](https://github.com/ssbc/ssb-http-auth-spec), but we add a few
|
2021-05-31 12:24:10 +00:00
|
|
|
additional features and pages in order to improve user experience. For instance, besides
|
|
|
|
conventional SSB HTTP Auth, we also render a QR code to sign-in with a remote SSB app (an SSB
|
|
|
|
identity not on the device that has the browser open). We also support sign-in with
|
|
|
|
username/password, what we call "fallback authentication".
|
|
|
|
|
|
|
|
A summary can be seen in the following chart:
|
|
|
|
|
2022-11-07 09:18:13 +00:00
|
|
|
![Chart](./images/login-chart.png)
|