Grant
Authentication middleware for koa, hapi, and express
Express
npm install grant-express
Server
1) Add this code with the right key and secret
const express = require('express')
const session = require('express-session')
const grant = require('grant-express')
const app = express()
// REQUIRED: any session store - see /examples/express-session-stores
app.use(session({secret: 'hi'}))
// mount grant
app.use(grant({
"defaults": {
"protocol": "http",
"host": "localhost:3000",
"transport": "session", //querystring | session
"state": true
},
"google": {
"key": "...",
"secret": "...",
"scope": ["openid", "profile", "email"],
"nonce": true,
"custom_params": {"access_type": "offline"},
"callback": "/hello"
}
}))
2) Set the redirect url for the oauth to [protocol]://[host]/connect/[provider]/callback
3) Login by navigating user to /connect/:provider
4) Will send the user to the defaults + callback Can just define the full url callback
5) The data will wither be in req.session.grant
or req.query
depending on the transport selected
if (!req.session.grant || !req.session.grant.response) {
console.error(`Login success failed, grant: ${req.session.grant}`);
res.redirect("/api/user/login/start");
return;
}
const { access_token, refresh_token } = req.session.grant.response;
Last updated