2.0.3 • Published 7 years ago
qnode-package v2.0.3
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 ...