Controllare l'access token in LoopBack

Controllare l'access token in LoopBack

LoopBack permette di creare un access toke direttamente dall'explorer.

In alto a destra, nella casella di testo, mettete il token che volete e poi cliccate su Set Access Token.

A questo punto, supponiamo di voler interrogare un model se e solo se viene passato l'access token.

In sostanza, questo è valido:

localhost:3000/api/movimenti?access_token=d2cc8dfc45564558bbfc373e8f0adfc1134901f9

Questo no, e restituirà un messaggio (che imposterete voi come volete):

localhost:3000/api/movimenti

Per fare questo, dobbiamo apportare una modifica al nostro model:

'use strict';

module.exports = function(Movimenti) {
  Movimenti.beforeRemote('*', function(ctx, res, next) {
    var token = ctx.req.query.access_token;
    if (!token) {
      next(new Error('Acess toke mancante!'));
    } else {
      next();
    }
  });
};

Abbiamo usato la funzione built-in beforeRemote per eseguire delle operazioni prima di interrogare le funzioni create dal framework; con l'asterisco ('*') diciamo di intercettare qualsiasi metodo / chiamata.

Sotto controlliamo il token, e nel caso in cui fosse vuoto, mandiamo il programma in errore.

In pratica riceveremo questo, e il programma continuerà a funzionare:

Error
500 Acess toke mancante!

Ovviamente non stiamo autenticando nessuno, e non stiamo usando l'autenticazione del framework.

E non stiamo neanche controllando neanche che token arrivi.

Ma a me non serve al momento; ho solo la necessità di controllare che arrivi un token.

E' un esempio basico da cui partire.

Enjoy!