hackjunction / hackjunction/JunctionApp
Improve copying over data from idToken
- Langage dominant
- JavaScript
- Étoiles
- 78
- Forks
- 69
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Depending on the login method, the user's idToken already potentially contains some relevant information that we could use to pre-fill the registration form. We are currently just using the user's name and email from the idToken, but we could just as well use the following:
- LinkedIn profile URL (if logging in with LinkedIn)
- GitHub profile URL (if logging in with GitHub)
- Something else? (Check what kinds of fields the idToken contains / could contain)
This should be implemented by just making the correct mapping from the idToken value to the respective question in [registration-fields.js](https://github.com/hackjunction/hackplatform/blob/dev/shared/constants/registration-fields.js), see e.g. the following example with the email field for reference:
```
email: {
...FieldProps.email,
category: Categories.basicDetails,
// Here is where we map the values from the idToken
default: (userProfile, idToken) => userProfile.email || idToken.email || '',
validationSchema: required => {
const base = yup
.string()
.email()
.label(FieldProps.email.label);
return required ? base.required() : base;
}
},
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans shared/constants/registration-fields.js, en utilisant le mappage par défaut du champ d’adresse e-mail comme référence. Vérifiez quels champs idToken peut contenir pour chaque méthode de connexion, puis mappez les URL de profil prises en charge ou d’autres valeurs utiles aux questions d’inscription correspondantes. Le travail est terminé lorsque le formulaire d’inscription est prérempli avec les données idToken disponibles sans remplacer les valeurs existantes de userProfile.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript
- Domaine
- frontend
- Type d'issue
- Fonctionnalité
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100