fix: handle response mode query

This commit is contained in:
2023-03-10 13:50:38 +01:00
parent eb579289f0
commit cf958ffa85
+27 -12
View File
@@ -183,13 +183,26 @@ app.get('/authorize', (req, res) => {
const codeChallenge = req.query.code_challenge const codeChallenge = req.query.code_challenge
const prompt = req.query.prompt const prompt = req.query.prompt
const responseMode = req.query.response_mode const responseMode = req.query.response_mode
if (responseMode === 'query') {
const code = req.cookies['auth0']
const session = sessions[code]
if (session) {
session.nonce = nonce
session.state = state
session.codeChallenge = codeChallenge
sessions[codeChallenge] = session
res.redirect(`${redirect}?code=${codeChallenge}&state=${state}`)
return
}
}
if (prompt === 'none' && responseMode === 'web_message') { if (prompt === 'none' && responseMode === 'web_message') {
const code = req.cookies['auth0'] const code = req.cookies['auth0']
const session = sessions[code] const session = sessions[code]
session.nonce = nonce if (session) {
session.state = state session.nonce = nonce
session.codeChallenge = codeChallenge session.state = state
res.send(` session.codeChallenge = codeChallenge
res.send(`
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<body> <body>
@@ -207,13 +220,16 @@ app.get('/authorize', (req, res) => {
</script> </script>
</body> </body>
</html>`) </html>`)
} else { return
res.cookie('auth0', codeChallenge, { }
sameSite: 'None', }
secure: true,
httpOnly: true res.cookie('auth0', codeChallenge, {
}) sameSite: 'None',
res.send(` secure: true,
httpOnly: true
})
res.send(`
<html lang='en'> <html lang='en'>
<head> <head>
<meta charset='utf-8'> <meta charset='utf-8'>
@@ -254,7 +270,6 @@ app.get('/authorize', (req, res) => {
</body> </body>
</html> </html>
`) `)
}
}) })
app.get('/userinfo', (req, res) => { app.get('/userinfo', (req, res) => {