10 Commits

Author SHA1 Message Date
René Preuß
197a1a5c8d Update package.yml 2023-09-12 11:13:06 +02:00
René Preuß
df53718392 Change node version 2023-09-12 11:11:03 +02:00
René Preuß
ce2ced4ffa Bump version / add ci 2023-09-12 11:03:56 +02:00
René Preuß
7384a4c5ce Allow external urls for oauth redirects 2023-09-12 10:54:18 +02:00
René Preuß
eff160b3c5 chore(release): v2.0.2 2023-06-22 21:45:59 +02:00
René Preuß
464e72535b Merge pull request #1 from bitinflow/envoyr-patch-1
Allow directory slash for login callback url
2023-06-22 21:43:39 +02:00
a77e689b38 Update plugin.ts 2023-06-22 21:32:28 +02:00
René Preuß
3ce7d64d50 Update CHANGELOG.md 2023-04-08 18:37:50 +02:00
René Preuß
6864194251 chore(release): v2.0.1 2023-04-08 18:33:28 +02:00
René Preuß
fc4abb27d5 Fix documentation 2023-04-08 18:33:00 +02:00
6 changed files with 52 additions and 14 deletions

22
.github/workflows/package.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: Node.js Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
with:
node-version: '19.x'
registry-url: 'https://registry.npmjs.org'
scope: '@bitinflow'
- run: npm install
- run: npm run build
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -1,18 +1,32 @@
# Changelog
## v2.0.2
## v2.0.1
## v1.0.6
Typo fixes in the GitHub/NPM repo
## v1.0.5
## v2.0.0
Support for Authorization Code Grant with PKCE
## v1.0.5 - v1.0.6
Fix for CookieRef when using watch(...)
## v1.0.4
Minor fixes
## v1.0.3
Minor fixes
## v1.0.2
Minor fixes
## v1.0.0
Initial Release

View File

@@ -82,7 +82,7 @@ export default defineNuxtConfig({
This will be your callback url (host is determined by `window.location.origin`):
- Callback: `http://localhost:3000/auth/login`
- Callback: `http://localhost:3000/login`
That's it! You can now use @bitinflow/nuxt-oauth in your Nuxt app ✨

View File

@@ -1,6 +1,6 @@
{
"name": "@bitinflow/nuxt-oauth",
"version": "2.0.1",
"version": "2.0.3",
"description": "Nuxt 3 OAuth Module",
"license": "MIT",
"type": "module",
@@ -21,7 +21,9 @@
"dev": "nuxi dev playground",
"dev:build": "nuxi build playground",
"dev:prepare": "nuxt-module-build --stub && nuxi prepare playground",
"release": "npm run lint && npm run test && npm run prepack && changelogen --release && npm publish --access public && git push --follow-tags",
"build": "npm run lint && npm run test && npm run prepack",
"release": "npm run lint && npm run test && npm run prepack && changelogen --release && git push --follow-tags",
"push": "npm publish --access public",
"lint": "eslint .",
"test": "vitest run",
"test:watch": "vitest watch"

View File

@@ -74,7 +74,7 @@ export default async (options: ComposableOptions = {
window.location.href = `${authConfig.endpoints.logout}?${params.toString()}`
}
return navigateTo(authConfig.redirect.logout)
return navigateTo(authConfig.redirect.logout, { external: true })
}
const setBearerToken = async (token: string, tokenType: string, expires: number): Promise<void> => {

View File

@@ -25,7 +25,7 @@ export default defineNuxtPlugin(() => {
const expires = hashParams.get('expires_in') as string;
await setBearerToken(token, tokenType, parseInt(expires));
return navigateTo(authConfig.redirect.home)
return navigateTo(authConfig.redirect.home, { external: true })
}
}
@@ -44,7 +44,7 @@ export default defineNuxtPlugin(() => {
if (stateFromRequest !== stateFromCookie.value) {
console.warn('State mismatch', stateFromRequest, stateFromCookie.value)
return navigateTo(authConfig.redirect.login)
return navigateTo(authConfig.redirect.login, { external: true })
}
const formData = new FormData();
@@ -61,23 +61,23 @@ export default defineNuxtPlugin(() => {
if (!response.ok) {
console.warn('Failed to fetch token', response)
return navigateTo(authConfig.redirect.login)
return navigateTo(authConfig.redirect.login, { external: true })
}
const data: AccessToken = await response.json();
await setBearerToken(data.access_token, data.token_type, data.expires_in)
await setRefreshToken(data.refresh_token, data.token_type, authConfig.refreshToken.maxAge)
return navigateTo(authConfig.redirect.home)
return navigateTo(authConfig.redirect.home, { external: true })
}
}
addRouteMiddleware('auth', async (to) => {
const {user, authConfig, setBearerToken, setRefreshToken} = await useAuth()
if (to.path === authConfig.redirect.callback) {
if (to.path === authConfig.redirect.callback || to.path === authConfig.redirect.callback + '/') {
const queryParams = new URLSearchParams(to.query.toString());
if (queryParams.has('error')) {
return navigateTo(authConfig.redirect.login)
return navigateTo(authConfig.redirect.login, { external: true })
}
if (authConfig.responseType === 'token') {
@@ -92,7 +92,7 @@ export default defineNuxtPlugin(() => {
}
if (user.value === undefined) {
return navigateTo(authConfig.redirect.login)
return navigateTo(authConfig.redirect.login, { external: true })
}
})
@@ -100,7 +100,7 @@ export default defineNuxtPlugin(() => {
const {user, authConfig} = await useAuth()
if (user.value !== undefined) {
return navigateTo(authConfig.redirect.home)
return navigateTo(authConfig.redirect.home, { external: true })
}
})
})