Make authentication more flexible
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 42/100
- Type d'issue
- Refactorisation
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- typescript
- Domaine
- authentication, backend-api-design
Piste de recherche
Commencez par lire src/authn/SolidAuthnLogic.ts et les changements abordés dans pull request 171 afin de comprendre la gestion actuelle de Inrupt et Uvdsl. Définissez le comportement souhaité de sélection et de valeur par défaut côté consommateur avant d’évaluer les implémentations séparées d’authenticator et le chargement différé. Le travail sera considéré comme terminé si l’API externe est préservée tout en permettant de sélectionner la bibliothèque d’authentification, avec Uvdsl par défaut.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When we switched out the auth lib there was an improvement suggestion from Noel:
Following up from my comments in this week's meeting, looking at the current PR it seems like src/authn/SolidAuthnLogic.ts is attempting to handle both Inrupt and Uvdsl libraries? If so, that's is good, here's a couple of comments:
I see that the Inrupt library was removed from the dependencies, but it's still used in some places using the "sessionAny". I'd strongly suggest to keep the dependency installed, and cast the variable to its actual type, rather than using any. Any should be avoided as much as possible.
The current implementation seems to rely on if/else logic inside of the same file. That is ok for now, specially if we can keep the external API for consumers the same. But ideally, we would have two different implementations of an interface, one for Inrupt and one for Uvdsl, and resolve the proper instance to use at runtime. This would also allow to add more adapters in the future. Even if that's not a goal right, it's also good for code organization. As Aad mentioned in the call, this is called the Adapter pattern. Though if that confuses you more than it helps, just take a look at how I've done it for my apps (each authentication library has its own class).
Another additional improvement is to make sure to lazy-load the authentication libraries. Basically, if someone is logging in with uvdsl, they don't need to download all the javascript of Inrupt's library. I also do that in my apps, in particular using dynamic imports (see the .lazy files).
I haven't looked at all the code in the PR, but it's not immediately clear to me how consumers of this library choose which authentication library to use. Ideally, we could have a login() function that takes an "authenticationLibrary" parameter (or "authenticator", as I call them in my code, etc.). That could default to uvdsl, but should be easy to replace with Inrupt.
- Langage dominant
- TypeScript
- Étoiles
- 12
- Forks
- 13
- Merge moyen
- 1 j 6 h
- PR mergées (30 j)
- 9
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de SolidOS/solid-logic
-
More Advanced features we can add to SolidOSPeut-être pris @bourgeoa l’a pris il y a 7 jours. Ouvertequestion
SolidOS/solid-logic#339 · 4 commentaires · 3 personnes assignées ·
Les mainteneurs répondent en général sous 1 jour
-
JSS : solid logic do no discover existing JSONLD typeIndexes and creates .ttl onesPeut-être à nouveau libre @bourgeoa l’a pris il y a 122 jours, et aucune pull request n’est ouverte. Ouvertebug
SolidOS/solid-logic#290 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
update getPodRoot() to v.10 solid protocolPeut-être à nouveau libre @bourgeoa l’a pris il y a 1244 jours, et aucune pull request n’est ouverte. Ouverteenhancement
SolidOS/solid-logic#64 · 5 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
getContainerElements can return urls outside of the containerPeut-être pris @SharonStrats l’a pris il y a 13 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
SolidOS/solid-logic#62 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
In typeindex code, for an instanceContainer, a container may be listed more than oncePeut-être pris @SharonStrats l’a pris il y a 13 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
SolidOS/solid-logic#57 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de SolidOS/solid-logic
Issues similaires
-
Create/import wallet form shows raw "password must be at least 1 characters" instead of the translated messagePeut-être pris @CapThunder19 l’a pris aujourd’hui. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
joinmarket-webui/jam#1538 ·
Les mainteneurs répondent en général sous 1 jour
-
t0ggles
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
nolimits4web/swiper#8240 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
modelcontextprotocol/inspector#2723 ·
Les mainteneurs répondent en général sous 1 jour
-
status:approved type:bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 70/100
egdev6/quorb#109 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour