Skip to content

Commit

Permalink
Ajout d'une page /error et ajout de logs (debug)
Browse files Browse the repository at this point in the history
  • Loading branch information
ggrossetie committed Mar 17, 2021
1 parent c67c302 commit 308556c
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 15 deletions.
21 changes: 21 additions & 0 deletions front/gatsby/src/components/Error.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import React from 'react'
import { useLocation } from 'react-router-dom'
import App from '../layouts/App'

import styles from '../components/Write/write.module.scss'

export default () => {
const urlSearchParams = new URLSearchParams(window.location.search)
const message = urlSearchParams.get('message') || ''
return (
<App layout="fullPage">
<section className={styles.container}>
<article className={styles.error}>
<h2>Error</h2>

<p>Something wrong happened: <code>{message}</code>.</p>
</article>
</section>
</App>
)
}
4 changes: 4 additions & 0 deletions front/gatsby/src/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { getApplicationConfig } from './helpers/applicationConfig'
import Register from './components/Register'
import PrivateRoute from './components/PrivateRoute'
import NotFound from './components/404'
import Error from './components/Error'
import Button from './components/Button'
import Field from './components/Field'
import { Check, Copy, Search } from 'react-feather'
Expand Down Expand Up @@ -131,6 +132,9 @@ render(
</App>
</PrivateRoute>
</Route>
<Route exact path="/error">
<Error />
</Route>
<Route path="*">
<NotFound />
</Route>
Expand Down
44 changes: 29 additions & 15 deletions graphql/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const jwt = require('jsonwebtoken')
const express = require('express')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const {graphqlHTTP} = require('express-graphql')
const { graphqlHTTP } = require('express-graphql')
const mongoose = require('mongoose')
const cors = require('cors')

Expand Down Expand Up @@ -64,7 +64,6 @@ if (sameSiteCookies === 'none') {
console.warn('Cookies are configured with `sameSite: none`.')
}


const corsOptions = {
optionsSuccessStatus: 200,
credentials: true,
Expand All @@ -84,7 +83,7 @@ passport.use('zotero', new OAuthStrategy({
callbackURL: zoteroAuthCallbackUrl,
sessionKey: 'oauth_token'
},
function(zoteroToken, tokenSecret, profile, done) {
function (zoteroToken, tokenSecret, profile, done) {
return done(null, { zoteroToken })
}
))
Expand All @@ -105,7 +104,7 @@ passport.use('oidc', new OidcStrategy({

passport.use(new LocalStrategy({ session: false },
function (username, password, done) {
graphQlResolvers.verifCreds({username, password})
graphQlResolvers.verifCreds({ username, password })
.then(userPassword => done(null, userPassword))
.catch(e => done(e, false))
}
Expand Down Expand Up @@ -145,8 +144,7 @@ app.use(function (req, res, next) {
try {
req.user = jwt.verify(jwtToken, jwtSecret)
req.isAuth = true
}
catch (error) {
} catch (error) {
return next(error)
}
}
Expand All @@ -170,8 +168,7 @@ app.get(
if (req.user) {
res.redirect(req.headers.referer)
} else {
console.log(`GET /login/openid - request.headers: ${req.headers}`)
console.log(`set origin on session: ${req.headers.referer}`)
console.log(`GET /login/openid - req.headers.referer: ${req.headers.referer}`)
req.session.origin = req.headers.referer
next()
}
Expand Down Expand Up @@ -221,8 +218,7 @@ app.use('/authorization-code/zotero/callback',
'Content-Type': 'text/html'
})
res.end(`<script>window.close();</script>`)
}
catch (error) {
} catch (error) {
console.error('error', error)
res.statusCode = 401
res.redirect(req.session.origin)
Expand All @@ -234,8 +230,25 @@ app.use('/authorization-code/zotero/callback',
})

app.use('/authorization-code/callback',
passport.authenticate('oidc', { failureRedirect: '/error' }), async (req, res) => {
console.log(`/authorization-code/zotero/callback - origin in session? ${req.session.origin}`)
(req, res, next) => {
return passport.authenticate('oidc', {
failureRedirect: '/error',
failureFlash: true
}, (err, user, info) => {
console.log('/authorization-code/callback - callback', err, user, info)
if (!user) {
console.error('Unable to authenticate', info.message)
res.redirect(`/error?message=${info.message}`)
} else if (err) {
console.error('error', err)
res.redirect(`/error?message=${info.message}`)
} else {
next()
}
})(req, res, next)
},
async (req, res) => {
console.log(`/authorization-code/callback - req.session.origin: ${req.session.origin}`)
const { email, given_name, family_name, name: displayName } = req.user._json
let user = await User.findOne({ email })

Expand Down Expand Up @@ -272,7 +285,8 @@ app.use('/authorization-code/callback',
})

res.redirect(req.session.origin)
})
}
)

app.get('/logout', (req, res) => {
req.logout()
Expand Down Expand Up @@ -305,9 +319,9 @@ app.post('/login',
})

res.statusCode = 200
res.json({password: userPassword, users: userPassword.users, token})
res.json({ password: userPassword, users: userPassword.users, token })
},
function onFailure (error, req, res, _) {
function onFailure(error, req, res, _) {
console.error('error', error)
res.statusCode = 401
res.json({ error })
Expand Down

0 comments on commit 308556c

Please sign in to comment.