Interroger APIS Rest sécurisée OAuth2


#1

Bonjour à tous,

Je suis actuellement en train de créer un site avec un front en vuejs, qui doit interroger une API Rest sécurisée avec un serveur d’authentificatoin OAuth2.

Le principe est fonctionnel sur un outil comme postman par exemple. J’appelle le serveur d’autorisation (/auth/token), avec un grant_type = password. En retour j’obient un token et un refresh_token.

J’utilise ensuite ce token (Bearer) dans mon appel à mon API (par exemple /api/voitures).

Maintenant que ce test est fonctionnel, j’essaye de mettre cela en place dans mon “client” vuejs, mais j’avoue avoir du mal à voir comment faire, car j’imagine qu’il ne faut pas refaire le /auth/token à chaque fois…

Merci d’avance pour votre aide.
Bonne soirée.


#2

Salut,

OAuth2 étant un standard, il doit exister des lib server et client toute prête.
En cherchant, rapidement “vue oauth2” on tombe par exemple sur vue-authenticate

Sinon, pour le faire à la mano, le principe simple :

  • un call à /auth/token pour récupérer access/refresh token
  • setter le header authorization avec ce token
    • ex pour vue-resource
      Vue.http.headers.common['Authorization'] = 'Basic YXBpOnBhc3N3b3Jk';
    • ex pour axios
      axios.defaults.headers.common['Authorization'] = 'Basic YXBpOnBhc3N3b3Jk';

et dans le cas d’access token a durée limitée :

  • si status 401, lancer un refresh de l’access token (avec grant_type=refresh_token)