Skip to content

pwsimon/expo-AzureAD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

getting started

start using the local Git Repository created by npx create-expo-app expo-AzureAD and sync them to DevOps. Create new/empty DevOps Repository and set/change the remote orgin of your local Git Repository by the values provided from DevOps.

Environment

wir Installation die entwicklungsumgebung Expo CLI (local).
Create your first app

Run

nach prioritaet, in der realisierung, geordnet brauchen wir eine Loesung fuer SPA (incl. backend). Die fehlende unterstuetzung fuer einen UseCase ist ein KO kriterium.

mit einer SPA koennen wir alle Platformen abdecken. der einfachheit halber stellen wir mit der static Site auch die RedirectUri-Page bereit.

mit diesem Subsystem (development-server) lassen wir die App local (Browser) und in der Expo Go App (Android) laufen. Sowohl die Browser als auch die Android version/variante muessen sich dazu mit dem development-server verbinden.

npx expo start // within Expo Go

typischerweise wird ein build (.apk) auf einem Device installiert.

npx expo start --dev-client

UseCases/Scenarios

standard schoen und gut aber welcher? je nach Anbieter (IdProvider) und dessen faehigkeiten & einschraenkungen hat das massiven einfluss auf das "wie" muss eine Anwendung gebaut werden bzw. welche infrastuktur ist noetig.

wie aus dem Project-Namen schon hervorgeht konzentrieren/codieren wir fuer Azure AD only. mit dem gruenen Code beschreiben wir ausfuehrlich das warum.

zum Debuggen/Lernen siehe auch: npm oidc-provider

Prepare to: Authenticate

Azure

Next Step/ToDo

Run within MobileDevice

makeRedirectUri

die Expo AuthSession generiert fuer fuer jeden UseCase: (Development Build, Expo Go, Web dev, Web prod, standalone-app) einen speziellen RedirectUri ...

verschiedene IdProvider erlauben keinen frei definierbaren RedirectUri. z.B. scheme Alternativen: mit der registrierung der App bekommt man einen RedirectUri zugewiesen. dann, sofern moeglich, diesen als RedirectUri in der App verwenden.

UseCase: Web dev

hier wird mittels eines Window: open() method zum IdProvider navigiert. Da hier ein neuer browsing context erzeugt wird ist das nicht einfach mit den DeveloperTools (F12) zu untersuchen. Der mit dem: login/proptAsync generierte: makeRedirectUri fuer den authenticate request zeigt auf den eigene BaseUri.

Deploy for Android

Deploy a project to Expo Go hosting

Die Expo Go App kann die Anwendung direkt vom development-server laden (siehe oben). Deployment-Setup idealerweise mittels Getting started

npx expo install expo-updates // install the latest expo-updates library
eas update:configure // initialize your project with EAS Update
eas build:configure // set up the configuration file (eas.json) for builds

Mit eas update wird die Anwendung so verpackt (gebundled) das sie in der Expo Go App laufen kann. Mit dem update wird das dann auch unter branches gelistet.

eas update

Ich Hoste das Repository aktuell bei GitHub war Azure DevOps. Fuer das Web-Deploy brauche ich, zwingend, einen im Internet stehenden Service (RedirectUri). Das laesst sich prinzipiell mit Azure static Web-Apps od. GitHub Pages machen.

Nachdem es aktuell mit GitHub Pages einfacher ist/war und ich das CI/CD Feature nicht brauche hab ich umgezogen.

Feature (autoLogin)

ich will mit dem oeffnen der App automatisch angemeldet sein. d.H. ich fuehre ein checkNoUserInteraction() durch. wenn das: 'success' === authSessionResult.type liefert fuehre ich ein: iNetLoginAsync() durch andernfalls wird der Login Button enabled. Das ist dann der UI Indikator das der Benutzer sich explizit anmelden authenticate() muss!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published