Skip to content
Snippets Groups Projects
Unverified Commit 060dc425 authored by xgui3783's avatar xgui3783 Committed by GitHub
Browse files

Merge pull request #380 from HumanBrainProject/staging

access token scoping/refreshing
parents c0287eb6 f803588a
No related branches found
No related tags found
No related merge requests found
...@@ -10,17 +10,19 @@ const redirectUri = `${HOSTNAME}/hbp-oidc/cb` ...@@ -10,17 +10,19 @@ const redirectUri = `${HOSTNAME}/hbp-oidc/cb`
let REFRESH_TOKEN = process.env.REFRESH_TOKEN || null let REFRESH_TOKEN = process.env.REFRESH_TOKEN || null
const CLIENT_NOT_INIT = `Client is not initialised.` const CLIENT_NOT_INIT = `Client is not initialised.`
const REFRESH_TOKEN_MISSING = `refresh token is missing` const REFRESH_TOKEN_MISSING = `refresh token is missing`
const REFRESH_ACCESS_TOKEN_MISSING = `access token not defined upon refresh`
const REFRESH_REFRESH_TOKEN_MISSING = `refresh token not defined upon refresh`
let __client let __client
let __publicAccessToken let __publicAccessToken
const refreshToken = async () => { const refreshToken = async () => {
if (!__client) if (!__client) throw new Error(CLIENT_NOT_INIT)
throw new Error(CLIENT_NOT_INIT) if (!REFRESH_TOKEN) throw new Error(REFRESH_TOKEN_MISSING)
if (!REFRESH_TOKEN)
throw new Error(REFRESH_TOKEN_MISSING)
const tokenset = await __client.refresh(REFRESH_TOKEN) const tokenset = await __client.refresh(REFRESH_TOKEN)
const {access_token: accessToken, refresh_token: refreshToken, id_token: idToken} = tokenset const {access_token: accessToken, refresh_token: refreshToken, id_token: idToken} = tokenset
if (!accessToken) throw new Error(REFRESH_ACCESS_TOKEN_MISSING)
if (!refreshToken) throw new Error(REFRESH_REFRESH_TOKEN_MISSING)
if (refreshToken !== REFRESH_TOKEN) { if (refreshToken !== REFRESH_TOKEN) {
REFRESH_TOKEN = refreshToken REFRESH_TOKEN = refreshToken
} }
......
const kgQueryUtil = require('./../auth/util') const kgQueryUtil = require('./../auth/util')
let getPublicAccessToken, publicAccessToken let getPublicAccessToken
const getUserKGRequestParam = async ({ user }) => { const getUserKGRequestParam = async ({ user }) => {
let publicAccessToken
/** /**
* n.b. ACCESS_TOKEN env var is usually only set during dev * n.b. ACCESS_TOKEN env var is usually only set during dev
*/ */
const accessToken = (user && user.tokenset && user.tokenset.access_token) || process.env.ACCESS_TOKEN const accessToken = (user && user.tokenset && user.tokenset.access_token) || process.env.ACCESS_TOKEN
const releasedOnly = !accessToken const releasedOnly = !accessToken
if (!accessToken && !publicAccessToken && getPublicAccessToken) { if (!accessToken && getPublicAccessToken) {
publicAccessToken = await getPublicAccessToken() publicAccessToken = await getPublicAccessToken()
} }
const option = accessToken || publicAccessToken const option = accessToken || publicAccessToken
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment