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!
javascript loopback noidejs access_token beforeremote
Commentami!