2.0.3 • Published 7 years ago

qnode-package v2.0.3

Weekly downloads
2
License
MIT
Repository
-
Last release
7 years ago

WSO Middleware

Use with Express

  • Install
yarn add qnode-package
  • Create wso.js
// sso.js
const { jwtAuth } = require('qnode-package');

module.exports = new jwtAuth({
    userInfoUrl: '', // Required
    clientId: '', // Required
    clientSecret: '', // Required
    accessTokenUri: '', // Required
    authorizationUri: '', // Required
    redirectUri: '', // Required
    ssoProperty: 'email',
    authProperty: 'user', // Will append to req
    secret: 'custom secret',
    tokenModel: {
        saveToken: async (data = {}) => {
            const { access_token, refresh_token, id_token } = data;
            // Save token to DB
        },

        getToken: async token => {
            // Get Token
        },

        getRefreshToken: async token => {
            // Get refresh token by token
        },

        removeToken: async token => {
            // Remove token
        },

        getUser: async email => {
            // get user by ssoProperty
        }
    }
});
  • Use
const express = require('express');
const sso = require('./sso');

const app = express();

// Lấy thông tin người dùng qua token
app.use(sso.authenticated({credentialsRequired:false}), (req, res) => {
    return res.json({
        isAuthenticate: req.isAuthenticate,
        user: req.user
    });
});

// Bắt buộc người dùng phải đăng nhập
app.use(sso.authenticated(), (req, res) => {
    return res.json({
        isAuthenticate: req.isAuthenticate,
        user: req.user
    });
});

// Refresh token
/**
 * Body {refresh_token: string}
 **/
app.post('/refresh-token', sso.refreshToken({ algorithm: 'HS256' }), (req, res) => {
    return res.json({
        token: req.token
    });
});

// Get token
/**
 * Body {code: string}
 **/
app.post('/token', sso.token({ algorithm: 'HS256' }), (req, res) => {
    return res.json({
        token: req.token
    });
});

## Something ...
2.0.3

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.0.4

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago