0.0.3-2-g57ed928 • Published 5 years ago

@frely/auth-node v0.0.3-2-g57ed928

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

auth-node

install package

Create a .npmrc file in the project on which you wanted to install the package and insert the following lines

//registry.npmjs.org/:_authToken=<TOKEN>

you can then do npm install --save @frely/auth-node

Exemple code index.js

const authNode = require('@frely/auth-node');
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');

// Import user model
const User = require('./models/user');

const app = express();

// Config mongoose connect
mongoose.connect('mongodb://localhost:27017/database', {useNewUrlParser: true});

// Config body-parser
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// Signup route
app.post('/register', authNode.register());

// Signin route
app.post('/login', authNode.login());

// check auth
app.get('/secret', authNode.checkToken(), (req, res) => {
  res.json(req.decoded);
});

app.listen(process.env.PORT || 3000, () => console.log(`App run port : ${process.env.PORT || 3000}`))

Exemple code ./models/user.js

const mongoose = require('mongoose');
const uuidv4 = require('uuid/v4');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
  _id: { type: String, default: uuidv4 },
  email: { type: String, lowercase: true, unique: true },
  password: String,
}, {
  timestamps: true
});

module.exports = mongoose.model('User', UserSchema);

API exemple

POST /register

Headers

{
  "Content-Type": "application/json"
}

Body

{
  "email": "hugo@frely.fr",
  "password": "toto"
}

Response 200

{
  "token": "eyJhbGciOiJIUzI...hLphM"
}
POST /login

Headers

{
  "Content-Type": "application/json"
}

Body

{
  "email": "hugo@frely.fr",
  "password": "toto"
}

Response 200

{
  "token": "eyJhbGciOiJIUzI...hLphM"
}
POST /secret

Headers

{
  "Authorization": "Bearer eyJhbGciOiJIUzI...hLphM"
}

Response 200

{
    "message": "Success",
    "id": "49b76e86-8857-4d5b-b00d-7359b6c0ede6",
    "iat": 1558172092,
    "exp": 1558179292
}