Aller au contenu principal

37-5 Retourner un jeton lors de l'inscription

Lors de l'inscription, on retourne le détail de l'utilisateur. Cela fait en sorte qu'il faudrait faire deux requêtes. Une première pour inscrire l'utilisateur et une deuxième l'authentifier ensuite.

On peut combiner les deux et simplement retourner un jeton si l'inscription est réussie.

Support pour signer des jetons

Tout comme dans AuthModule, on doit ajouter le support pour la signature de jetons au module Utilisateur.

src/utilisateurs/utilisateurs.module.ts
@Module({
imports: [
JwtModule.registerAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => ({
secret: configService.get('JWT_SECRET'),
signOptions: { expiresIn: configService.get('JWT_EXPIRES_IN') },
}),
}),
],
controllers: [UtilisateursController],
providers: [UtilisateursService]
})
export class UtilisateursModule {}

Retourner un jeton lors de l'inscription

  1. Injecter JwtService via le constructeur de UtilisateursService
    src/utilisateurs/utilisateurs.service.ts
    export class UtilisateursService {
    constructor(private readonly i18n: I18nService,
    private jwtService: JwtService) {}
  2. Plutôt que de retourner l'utilisateur, retournez simplement un nouveau jeton signé!
    src/utilisateurs/utilisateurs.service.ts
      //...

    await utilisateur.save();

    const access_token = this.jwtService.sign({
    sub: utilisateur.id,
    courriel: utilisateur.courriel,
    nomUtilisateur: utilisateur.nomUtilisateur,
    });
    return { access_token };
    }

Vous pouvez essayer via Postman d'inscrire un autre utilisateur et devriez recevoir un jeton d'accès JWT.

Level Up