Closed RNF-SI closed 9 months ago
Salut, Est ce que le token est bien stocké dans tes cookies côté navigateur (il ne peut se mettre que sur le même domaine, et même prefixe, que l'API surlaquelle il est appelé). Ensuite c'est à ton frontend d'envoyer le cookie à chaque requête. Par defaut Angular le fait tout seul, je ne sais pas quel techno tu utilises ?
Non justement je n'ai pas de cookie stocké côté navigateur... mis à part le port, l'api flask est lancée sur le même domaine que mon front qui est bien du angular 15. Je n'ai testé qu'en local pour l'instant, où sur un serveur pour lequel je n'ai pas défini de domaine (je reste sur l'ip).
Ce ne serait un pb de http://localhost
vs http://127.0.0.1
?
J'étais effectivement en localhost sur mon front, mais je viens d'essayer en http://127.0.0.1:4200 avec un api_endpoint en http://127.0.0.1:5070 et ça ne marche pas. J'ai juste un current_user dans mon navigateur, défini dans mon front.
tu confirmes que en théorie, le simple fait d'utiliser la fonction /auth/login
devrait générer un token ?
oui, la réponse doit contenir une header "Set-Cookie" et être stocké côté front Quelle version du sous-module utilises-tu ?
1.5.9 installée avec pip
Tu peux essayer avec la dernière, https://github.com/PnX-SI/UsersHub-authentification-module/releases/tag/1.6.11 ?
et pour le Set-cookie
?
en testant sur postman j'ai bien le Set-cookie
. Mais aucun cookie sur un navigateur (testé sur firefox et chrome).
et j'ai installé la 1.6.11, pas de changement
Derniere piste : sur quel Path le cookie est mis et quand expire-t-il ?
le
path
est donc /
et l'expiration est 15h49 (pour un cookie expiration défini à 10800, mais j'ai l'impression qu'il reste en GMT+0)
ça semble bien être un problème de date effectivement. Vérifie la date de ton serveur et le paramètre cookie_expiration
je travaille sur un windows sub system qui est sous Debian, si je test l'heure sous Debian ou même python j'ai bien la bonne heure. mais quoi qu'il arrive en mettant un cookie_expiration
qui arrive largement après ça devrait passer non ? (ci avant expiration à 15h49 pour un cookie généré à 14h49)
C'est bon j'ai trouvé le problème. En fait il faut également ajouter le paramètre { withCredentials: true }
dans l'appel de la requête depuis Angular, ou créer un HttpInterceptor
comme dans GeoNature pour permettre ce paramètre dans toutes les requêtes.
Salut,
J'utilise UsersHub pour gérer les accès à plusieurs applications, et ce sans soucis. Je cherche maintenant à utiliser le décorateur
@check_auth()
mais je n'ai pas de token enregistré dans mes cookies. J'utilise la route/auth/login
pour la connexion, qui marche très bien, et enregistre en localStorage les infos de l'utilisateur. La seule fonction que je ne fais pas à priori esthandleRegister
mais je pense qu'elle ne gère que les routes de provenance et de renvoit après connexion. Je vois bien qu'il existe une fonctionsetToken
dans le auth.service, mais elle semble appelée nul part... bref je sèche, et du coup le check_auth me renvoit toujours un "No Token", et il y en a pas en effet... Merci pour votre aide !