Files
gancio/server/api/oauth.js

42 lines
1.1 KiB
JavaScript
Raw Normal View History

const express = require('express')
const OAuthServer = require('express-oauth-server')
const oauth = express.Router()
const oauthController = require('./controller/oauth')
const oauthServer = new OAuthServer({
model: oauthController.model,
useErrorHandler: true,
debug: true,
authenticateHandler: { handle(req) { return req.user } }
})
oauth.oauth = oauthServer
2020-01-03 22:24:27 +01:00
oauth.use(express.urlencoded({ extended: false }))
oauth.use(express.json())
// post token
2020-01-03 22:24:27 +01:00
oauth.post('/token', oauthServer.token())
oauth.get('/authorize', async (req, res, next) => {
if (!req.user) {
2020-01-03 22:24:27 +01:00
return res.redirect(`/login?redirect=${req.path}&client_id=${req.query.client_id}&redirect_uri=${req.query.redirect_uri}`)
}
2020-01-03 22:24:27 +01:00
return oauthServer.authorize()
})
oauth.post('/authorize', (req, res, next) => {
if (!req.user) {
2020-01-03 22:24:27 +01:00
return res.redirect(`/login?redirect=${req.path}&client_id=${req.query.client_id}&redirect_uri=${req.query.redirect_uri}`)
}
2020-01-03 22:24:27 +01:00
return oauthServer.authorize()
})
oauth.use((err, req, res, next) => {
2020-01-03 22:24:27 +01:00
res.status(500).json(err)
})
// oauth.post('/login', )
module.exports = oauth