Node.js

JWT : l'authentification avec token (plutôt qu'avec cookie)

Voici une alternative au célèbre package passport : JWT. JSON Web Token, JWT pour les intimes - que les anglophones prononcent 'djot' - est une spécification pour l'authentification. Un JWT est un objet JSON encodé qu'un serveur (Node par exemple) encode en utilisant une clé privée. L'objet JSON encodé est un…

Ajax via SuperAgent, testé avec mocha(TDD inside)

SuperAgent permet de faire du CRUD sur une URL relative ou absolue, notamment - et c'est ce qui nous intéresse - dans node. C'est le cas typique de la consommation d'une RESTful API. L'installation se fait avec npm : npm install superagent Faire du CRUD se fait simplement en utilisant le…

Debugguer une application Node.js avec node-inspector

Si recourir à quelques console.log() bien sentis peut être pratique afin de vérifier rapidement la valeur d'une variable, on est à peine un cran au dessus des alert() qui trufaient nos fichiers JavaScript dans les années 90 (et même 2000 ... parfois 2010). En revanche, pour traquer un bug un…

Sécuriser vos applications web Node avec grunt-nsp-package

Quel que soit le langage utilisé pour créer des applications web, on entend souvent dire qu'il faut éviter de réinventer la roue. Dans l'univers de Node, cela signifie utiliser des modules, via npm, modules qui fournissent la fonctionalité qui vous intéresse (envoyer des emails, gérer vos cookies, extraire des info…

Sécuriser vos applications web avec Lusca

Lusca est un middleware dédié à la sécurité de vos applications Express. Les menaces contemporaines les plus courantes sont ainsi prises en charge en 6 lignes de code : app.use(lusca.csrf()); app.use(lusca.csp({/**/})); app.use(lusca.hsts({maxAge: 31536000})); app.use(lusca.csxframef('SAMEORIGIN')); app.use(lusca…

Migrer d'Express 3.X vers 4.X

Express ne dépend plus de Connect. Ce qui a pour conséquence que la plupart des middlewares autrefois nativement inclus doivent désormais être installés via npm. C'est le cas par exemple de bodyParser. Il faudra penser à faire un : npm install body-parser puis dans votre code : var bodyParser = require("body-parser"); Cela…

Passwordless: middleware d'authentification pour Express

"One-Time PassWord" (OTPW) : mot de passe à usage unique. C'est ce vers quoi poussent certains experts en sécurité, surtout depuis Heartbleed. Prenant en compte le fait que les utilisateurs ne prennent pas forcément la peine de créer des mots de passe robustes et, s'ils le font, ne créent pas un…

Utiliser screen pour continuer à exécuter votre application Node après la fermeture de putty

Vous avez créé une application web servie par Node.js et souhaitez la tester sur la machine virtuelle d'un hébergeur node comme Digital Ocean ou Linode. Vous vous connectez avec putty en SSH et lancez votre application (on part de l'hypothèse que votre appli node est dans server.js) : node…

Cylon.js : Node.js et robotique

Il est aujourd'hui possible d'acheter toute sortes de gadgets, y compris des drones. Si bien que désormais, c'est le soft qui semble ne plus suivre. Cylon.js essaie d'équilibrer la donne. Cylon.js est un framework JavaScript dédié à la robotique, aux interfaces hommes-machine au sens large et aux objets…

Node.js Stream Playground

Voilà un outil visuel qui aide à comprendre comment Node gère les flux (streams) et les pipes (la sortie d'un flux devenant l'entrée d'un autre flux). On peut jouer avec les options qui permettent de fournir un fichier local, ou encore un fichier depuis une requête POST, zipper/dezipper, parser…

Node.js : installation et création d'un serveur web

On attaque le "N" de MEAN, avec l'installation de Node.js, puis la création du hello world rituel de Node.js : la création d'un serveur web. L'installation est simplissime : un bouton vert vous attend sur le site officiel de node.js. Le reste en image ci-dessous: …

Créer une RESTful API sans se presser en ... 5 minutes

D'ordinaire, il convient de se méfier des titres tapageurs. Avec Sails.js pourtant, la création d'une RESTful API prend vraiment uniquement 5 minutes. Et encore, en comptant le temps d'installation du framework. C'est dire : // installation du framework sails npm install sails // création de l'appli musiciansapi sails new musiciansapi cd musiciansapi…