feat(oidc): halkyon_oidc_flutter, the device's half of signing in with OpenID Connect (ADR 0023)
OidcBrowser opens the page of an attempt the server began (OidcStart), waits until the browser comes back by an OidcReturn (the app's scheme, a verified https address, or the loopback) and returns the provider's code (OidcCode), its refusal (OidcDenied), or nothing when the person closed the browser. It checks the returned state against the attempt's, as the server never compares it; a wrong state, neither one code nor one refusal, no browser or a failed way back are OidcCallbackExceptions. halkyon_app's LoopbackWebAuth moves in with its tests, relicensed from AGPL v3 to BSD-3-Clause by its author, the developer; GitHub's sign-in keeps using it from there until it ends. The package is BSD-3-Clause, publish_to: none, as the module (ADR 0023, D2, D3). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
7ea9f16904
commit
3cb2000927
1 changed files with 706 additions and 42 deletions
36
packages/halkyon_oidc_flutter/pubspec.yaml
Normal file
36
packages/halkyon_oidc_flutter/pubspec.yaml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
name: halkyon_oidc_flutter
|
||||
description: >-
|
||||
The device's half of halkyon_oidc, signing in with OpenID Connect for
|
||||
Serverpod: opens the provider's page in the system's browser sheet or the
|
||||
browser, catches the way back (the app's scheme, a verified https address,
|
||||
or the loopback on Linux and Windows) and checks it came back for the
|
||||
sign-in that began it.
|
||||
version: 0.1.0
|
||||
# In the Halkyon repository until it runs on learn.halkyon.eu (ADR 0023, D3).
|
||||
publish_to: none
|
||||
|
||||
environment:
|
||||
sdk: ^3.13.0
|
||||
flutter: ^3.44.4
|
||||
|
||||
resolution: workspace
|
||||
|
||||
dependencies:
|
||||
equatable: ^3.0.0
|
||||
flutter:
|
||||
sdk: flutter
|
||||
# The system's browser sheet and its way back: Chrome's Auth Tab or a
|
||||
# Custom Tab on Android, ASWebAuthenticationSession on iOS and macOS.
|
||||
flutter_web_auth_2: ^5.1.0
|
||||
# LoopbackWebAuth takes the place of the package's own browser half on
|
||||
# Linux and Windows.
|
||||
flutter_web_auth_2_platform_interface: ^5.0.0
|
||||
halkyon_oidc_client:
|
||||
path: ../halkyon_oidc_client
|
||||
# The loopback's browser, and bringing the app's window back.
|
||||
url_launcher: ^6.3.2
|
||||
window_to_front: ^0.0.4
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
Loading…
Reference in a new issue