Skip to content

Commit 816c239

Browse files
authored
Merge pull request #26 from aborn/nuxt_393
feature: remove logger deps & upgrade nuxt to 3.9.3. fix issue:#25
2 parents e584d6b + 83cf1fe commit 816c239

File tree

11 files changed

+3307
-1786
lines changed

11 files changed

+3307
-1786
lines changed

package.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nuxt-openid-connect",
3-
"version": "0.6.2",
3+
"version": "0.7.0",
44
"description": "An nuxt 3 module with OpenID-Connect(OIDC) integration.",
55
"keywords": [
66
"nuxt",
@@ -30,23 +30,26 @@
3030
"prepack": "nuxt-module-build",
3131
"dev": "nuxi dev playground",
3232
"dev:build": "nuxi build playground",
33-
"dev:preview": "nuxi preview playground",
3433
"dev:prepare": "nuxt-module-build --stub && nuxi prepare playground",
34+
"release": "npm run lint && npm run test && npm run prepack && changelogen --release && npm publish && git push --follow-tags",
35+
"lint": "eslint .",
36+
"test": "vitest run",
3537
"pub": "npm publish --access public"
3638
},
3739
"dependencies": {
38-
"@nuxt/kit": "^3.2.2",
40+
"@nuxt/kit": "^3.9.3",
3941
"defu": "^6.0.0",
4042
"openid-client": "^5.1.6",
4143
"uuid": "^9.0.0"
4244
},
4345
"devDependencies": {
4446
"@nuxt/module-builder": "latest",
4547
"@nuxtjs/eslint-config-typescript": "latest",
46-
"@types/node": "^18.14.2",
48+
"@types/node": "^20.11.10",
4749
"@types/uuid": "^8.3.4",
4850
"eslint": "latest",
49-
"nuxt": "^3.2.2"
51+
"nuxt": "^3.9.3",
52+
"typescript": "^5.3.3"
5053
},
5154
"bugs": {
5255
"url": "https://github.com/aborn/nuxt-openid-connect/issues"

playground/nuxt.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ export default defineNuxtConfig({
3838
openidConnect: {
3939
addPlugin: true,
4040
op: {
41-
issuer: 'http://192.168.24.103:8080/realms/test', // change to your OP addrress
41+
issuer: 'http://localhost:8080/realms/test', // change to your OP addrress
4242
clientId: 'testClient',
4343
clientSecret: 'cnuLA78epx8s8vMbRxcaiXbzlS4u8bSA',
44-
callbackUrl: 'http://192.168.24.103:3000/oidc/callback', // optional
44+
callbackUrl: 'http://localhost:3000/oidc/callback', // optional
4545
scope: [
4646
'email',
4747
'profile',

src/module.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { fileURLToPath } from 'url'
22
import { defineNuxtModule, addPlugin, resolveModule, createResolver } from '@nuxt/kit'
33
import { defu } from 'defu'
44
import { name, version } from '../package.json'
5-
import { logger } from './runtime/utils/logger'
65

76
export type CookieSerializeOptions = {
87
domain?: string | undefined;
@@ -82,9 +81,8 @@ export default defineNuxtModule<ModuleOptions>({
8281
}
8382
},
8483
setup(options, nuxt) {
85-
logger.level = options.config.debug === true ? 5 : 0 // 4 = debug, 5 = trace
86-
logger.info('[DEBUG MODE]: ', options.config.debug)
87-
logger.debug('[WITHOUT ENV VARS] options:', options)
84+
console.log('[DEBUG MODE]: ', options.config.debug)
85+
console.debug('[WITHOUT ENV VARS] options:', options)
8886

8987
const { resolve } = createResolver(import.meta.url)
9088
const resolveRuntimeModule = (path: string) => resolveModule(path, { paths: resolve('./runtime') })

src/runtime/server/routes/oidc/callback.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ import * as http from 'http'
22
import { defineEventHandler, getCookie, setCookie, deleteCookie } from 'h3'
33
import { initClient } from '../../../utils/issueclient'
44
import { encrypt } from '../../../utils/encrypt'
5-
import { logger } from '../../../utils/logger'
65
import { getRedirectUrl, getCallbackUrl, getDefaultBackUrl, getResponseMode, setCookieInfo, setCookieTokenAndRefreshToken } from '../../../utils/utils'
76
import { useRuntimeConfig } from '#imports'
87

98
export default defineEventHandler(async (event) => {
109
const req = event.node.req
1110
const res = event.node.res
12-
logger.info('[CALLBACK]: oidc/callback calling, method:' + req.method)
11+
console.log('[CALLBACK]: oidc/callback calling, method:' + req.method)
1312

1413
let request = req
1514
if (req.method === 'POST') {
@@ -27,8 +26,8 @@ export default defineEventHandler(async (event) => {
2726
const sessionid = getCookie(event, config.secret)
2827
deleteCookie(event, config.secret)
2928
const redirectUrl = getRedirectUrl(req.url)
30-
// logger.info('---Callback. redirectUrl:' + redirectUrl)
31-
// logger.info(' -- req.url:' + req.url + ' #method:' + req.method + ' #response_mode:' + responseMode)
29+
// console.log('---Callback. redirectUrl:' + redirectUrl)
30+
// console.log(' -- req.url:' + req.url + ' #method:' + req.method + ' #response_mode:' + responseMode)
3231

3332
const callbackUrl = getCallbackUrl(op.callbackUrl, redirectUrl, req.headers.host)
3433
const defCallBackUrl = getDefaultBackUrl(redirectUrl, req.headers.host)
@@ -38,13 +37,13 @@ export default defineEventHandler(async (event) => {
3837

3938
if (params.access_token) {
4039
// Implicit ID Token Flow: access_token
41-
logger.debug('[CALLBACK]: has access_token in params, accessToken:' + params.access_token)
40+
console.log('[CALLBACK]: has access_token in params, accessToken:' + params.access_token)
4241
await processUserInfo(params.access_token, null, event)
4342
res.writeHead(302, { Location: redirectUrl || '/' })
4443
res.end()
4544
} else if (params.code) {
4645
// Authorization Code Flow: code -> access_token
47-
logger.debug('[CALLBACK]: has code in params, code:' + params.code + ' ,sessionid=' + sessionid)
46+
console.log('[CALLBACK]: has code in params, code:' + params.code + ' ,sessionid=' + sessionid)
4847
const tokenSet = await issueClient.callback(callbackUrl, params, { nonce: sessionid })
4948
if (tokenSet.access_token) {
5049
await processUserInfo(tokenSet.access_token, tokenSet, event)
@@ -56,16 +55,16 @@ export default defineEventHandler(async (event) => {
5655
// eslint-disable-next-line no-lonely-if
5756
if (params.error) {
5857
// redirct to auth failed error page.
59-
logger.error('[CALLBACK]: error callback')
60-
logger.error(params.error + ', error_description:' + params.error_description)
58+
console.error('[CALLBACK]: error callback')
59+
console.error(params.error + ', error_description:' + params.error_description)
6160
res.writeHead(302, { Location: '/oidc/error' })
6261
res.end()
6362
} else if (responseMode === 'fragment') {
64-
logger.warn('[CALLBACK]: callback redirect')
63+
console.warn('[CALLBACK]: callback redirect')
6564
res.writeHead(302, { Location: '/oidc/cbt?redirect=' + redirectUrl })
6665
res.end()
6766
} else {
68-
logger.error('[CALLBACK]: error callback')
67+
console.error('[CALLBACK]: error callback')
6968
res.writeHead(302, { Location: redirectUrl || '/' })
7069
res.end()
7170
}
@@ -84,7 +83,7 @@ export default defineEventHandler(async (event) => {
8483
// userinfo setting
8584
await setCookieInfo(event, config, userinfo)
8685
} catch (err) {
87-
logger.error('[CALLBACK]: ' + err)
86+
console.error('[CALLBACK]: ' + err)
8887
}
8988
}
9089
})

src/runtime/server/routes/oidc/cbt.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { defineEventHandler, setCookie, getCookie } from 'h3'
2-
import { logger } from '@nuxt/kit'
32
import { CBT_PAGE_TEMPATE } from '../../../utils/template'
43
import { useRuntimeConfig } from '#imports'
54

65
export default defineEventHandler((event) => {
7-
logger.debug('[CBT]: oidc/cbt calling')
6+
console.log('[CBT]: oidc/cbt calling')
87
const { config } = useRuntimeConfig().openidConnect
98
const res = event.node.res
109
const html = CBT_PAGE_TEMPATE

src/runtime/server/routes/oidc/login.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ import { defineEventHandler, setCookie, getCookie } from 'h3'
22
import { v4 as uuidv4 } from 'uuid'
33
import { generators } from 'openid-client'
44
import { initClient } from '../../../utils/issueclient'
5-
import { logger } from '../../../utils/logger'
65
import { getRedirectUrl, getCallbackUrl, getDefaultBackUrl, getResponseMode } from '../../../utils/utils'
76
import { useRuntimeConfig } from '#imports'
87

98
export default defineEventHandler(async (event) => {
10-
logger.info('[Login]: oidc/login calling')
9+
console.log('[Login]: oidc/login calling')
1110
const req = event.node.req
1211
const res = event.node.res
1312

@@ -21,15 +20,15 @@ export default defineEventHandler(async (event) => {
2120
let sessionid = getCookie(event, config.secret)
2221
if (!sessionid) {
2322
sessionid = generators.nonce()
24-
logger.info('[Login]: regenerate sessionid=' + sessionid)
23+
console.log('[Login]: regenerate sessionid=' + sessionid)
2524
} else {
26-
logger.info('[Login]: cookie sessionid=' + sessionid)
25+
console.log('[Login]: cookie sessionid=' + sessionid)
2726
}
2827

2928
const responseMode = getResponseMode(config)
3029
const scopes = op.scope.includes('openid') ? op.scope : [...op.scope, 'openid']
31-
logger.info('[Login]: cabackurl & op.callbackUrl & redirecturl: ', callbackUrl, op.callbackUrl, redirectUrl)
32-
logger.info(' response_mode:' + responseMode + ', response_type:' + config.response_type + ', scopes:' + scopes.join(' '))
30+
console.log('[Login]: cabackurl & op.callbackUrl & redirecturl: ', callbackUrl, op.callbackUrl, redirectUrl)
31+
console.log(' response_mode:' + responseMode + ', response_type:' + config.response_type + ', scopes:' + scopes.join(' '))
3332

3433
const parameters = {
3534
redirect_uri: callbackUrl,
@@ -39,7 +38,7 @@ export default defineEventHandler(async (event) => {
3938
scope: scopes.join(' ')
4039
}
4140
const authUrl = issueClient.authorizationUrl(parameters)
42-
logger.info('[Login]: Auth Url: ' + authUrl + ', #sessionid:' + sessionid)
41+
console.log('[Login]: Auth Url: ' + authUrl + ', #sessionid:' + sessionid)
4342

4443
if (sessionid) {
4544
setCookie(event, sessionkey, sessionid, {

src/runtime/server/routes/oidc/logout.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { getCookie, deleteCookie, defineEventHandler } from 'h3'
2-
import { logger } from '../../../utils/logger'
32
import { useRuntimeConfig } from '#imports'
43

54
export default defineEventHandler((event) => {
65
const res = event.node.res
7-
logger.log('[LOGOUT]: oidc/logout calling')
6+
console.log('[LOGOUT]: oidc/logout calling')
87

98
const { config } = useRuntimeConfig().openidConnect
109
deleteCookie(event, config.secret)

src/runtime/server/routes/oidc/user.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import { getCookie, deleteCookie, defineEventHandler } from 'h3'
22
import { initClient } from '../../../utils/issueclient'
33
import { encrypt, decrypt } from '../../../utils/encrypt'
4-
import { logger } from '../../../utils/logger'
54
import { setCookieInfo, setCookieTokenAndRefreshToken } from '../../../utils/utils'
65
import { useRuntimeConfig } from '#imports'
76

87
export default defineEventHandler(async (event) => {
98
const { config, op } = useRuntimeConfig().openidConnect
10-
logger.debug('[USER]: oidc/user calling')
11-
logger.trace('[USER]: ' + event.req.headers.cookie)
9+
console.log('[USER]: oidc/user calling')
1210

1311
const sessionid = getCookie(event, config.secret)
1412
const accesstoken = getCookie(event, config.cookiePrefix + 'access_token')
@@ -17,19 +15,19 @@ export default defineEventHandler(async (event) => {
1715
const issueClient = await initClient(op, event.node.req, [])
1816

1917
if (userinfoCookie) {
20-
logger.info('userinfo:Cookie')
18+
console.log('userinfo:Cookie')
2119
const userInfoStr: string | undefined = await decrypt(userinfoCookie, config)
2220
return JSON.parse(userInfoStr ?? '')
2321
} else if (accesstoken) {
24-
logger.info('userinfo:accesstoken')
22+
console.log('userinfo:accesstoken')
2523
try {
2624
// load user info from oidc server.
2725
const userinfo = await issueClient.userinfo(accesstoken)
2826
// add encrypted userinfo to cookies.
2927
await setCookieInfo(event, config, userinfo)
3028
return userinfo
3129
} catch (err) {
32-
logger.error('[USER]: ' + err)
30+
console.error('[USER]: ' + err)
3331
deleteCookie(event, config.secret)
3432
deleteCookie(event, config.cookiePrefix + 'access_token')
3533
deleteCookie(event, config.cookiePrefix + 'user_info')
@@ -42,7 +40,7 @@ export default defineEventHandler(async (event) => {
4240
return {}
4341
}
4442
} else if (refreshToken) {
45-
logger.info('userinfo:refresh token')
43+
console.log('userinfo:refresh token')
4644
const tokenSet = await issueClient.refresh(refreshToken)
4745
// console.log('refreshed and validated tokens %j', tokenSet)
4846
// console.log('refreshed ID Token claims %j', tokenSet.claims())
@@ -54,9 +52,9 @@ export default defineEventHandler(async (event) => {
5452
} else {
5553
return {}
5654
}
57-
// logger.info('userinfo:' + userinfo)
55+
// console.log('userinfo:' + userinfo)
5856
} else {
59-
logger.debug('[USER]: empty accesstoken for access userinfo')
57+
console.log('[USER]: empty accesstoken for access userinfo')
6058
return {}
6159
}
6260
})

src/runtime/utils/issueclient.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { Issuer } from 'openid-client'
22
import { OidcProvider } from '../../module'
3-
import { logger } from './logger'
43
import { useRuntimeConfig } from '#imports'
54

65
export const initClient = async (op: OidcProvider, req: any, redirectUris: string[]) => {
76
const { config } = useRuntimeConfig().openidConnect
87
const issuer = await Issuer.discover(op.issuer)
9-
logger.trace('Discovered issuer %s %O', issuer.issuer, issuer.metadata)
8+
// console.log('Discovered issuer %s %O', issuer.issuer, issuer.metadata)
109
const client = new issuer.Client({
1110
client_id: op.clientId,
1211
client_secret: op.clientSecret,

src/runtime/utils/logger.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)