Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
e181700
Migrate to node-oidc-provider
jwahdatehagh Mar 18, 2026
dd518ec
Add typecheck command
jwahdatehagh Mar 18, 2026
7fc473c
Fix deps
jwahdatehagh Mar 18, 2026
09050cf
Safe to expect existence
jwahdatehagh Mar 18, 2026
209b12f
Warn when cookie key not set
jwahdatehagh Mar 18, 2026
9150203
Console error details
jwahdatehagh Mar 18, 2026
d0cb8b8
Simplify error handling
jwahdatehagh Mar 18, 2026
f230af8
Simplify post handler
jwahdatehagh Mar 18, 2026
ab89e68
Fix dockerfile add ignore
jwahdatehagh Mar 18, 2026
011210e
Implement tests
jwahdatehagh Mar 18, 2026
764353f
Fix route catch
jwahdatehagh Mar 18, 2026
ba45faf
App config + env vars
jwahdatehagh Mar 18, 2026
9040036
Switch to pnpm; Test config
jwahdatehagh Mar 18, 2026
5967b37
E2E tests
jwahdatehagh Mar 18, 2026
bb8e961
Refactor flow
jwahdatehagh Mar 18, 2026
348ba53
Fix JWKs key mismatch across workers
jwahdatehagh Mar 18, 2026
3c9cb54
Set up prettier
jwahdatehagh Mar 18, 2026
5f4a4e8
Add ethereum and siwe logos
jwahdatehagh Mar 18, 2026
84af5d4
Use library native UI components
jwahdatehagh Mar 18, 2026
17c1fae
Restructure interaction page
jwahdatehagh Mar 19, 2026
2bcfa06
Udate nuxt version
jwahdatehagh Mar 19, 2026
a57919f
Typechecks
jwahdatehagh Mar 19, 2026
43d27c0
Extract client data (logo, uri, ...)
jwahdatehagh Mar 19, 2026
639fbc9
Improve layout of interaction page
jwahdatehagh Mar 19, 2026
f537a40
Fix height (let it scroll / grow)
jwahdatehagh Mar 19, 2026
54abe27
Lock down versions
jwahdatehagh Mar 19, 2026
05ea08a
Run formatter
jwahdatehagh Mar 19, 2026
5d28688
Map to the previous' version api endoints
jwahdatehagh Mar 19, 2026
5922732
Up deps
jwahdatehagh Mar 19, 2026
82ae2c0
Use compat mode
jwahdatehagh Mar 19, 2026
6d413e2
Remove unused import
jwahdatehagh Mar 19, 2026
fc15d21
Up dependencies
jwahdatehagh Mar 19, 2026
1b14533
Refactor siwelogin flow
jwahdatehagh Mar 19, 2026
3bc8155
Update package
jwahdatehagh Mar 19, 2026
78d1b21
Clean up config
jwahdatehagh Mar 19, 2026
6beb4aa
Skip e2e tests when no local server is running
jwahdatehagh Mar 19, 2026
7e7969e
Fix cookie path
jwahdatehagh Mar 19, 2026
9bd43c0
Build out unit tests
jwahdatehagh Mar 19, 2026
272ef0d
Use domain in siwe message to verify
jwahdatehagh Mar 19, 2026
d924f34
Fix auth timeouts
jwahdatehagh Mar 19, 2026
13b7600
Simplify to default behavior
jwahdatehagh Mar 19, 2026
d2bd034
Fix validator + test
jwahdatehagh Mar 19, 2026
58e5e51
Require pkce
jwahdatehagh Mar 19, 2026
d83c401
Allow localhost
jwahdatehagh Mar 19, 2026
3e13f7e
Allow configuring redirectTo
jwahdatehagh Mar 23, 2026
cd084f4
Improve error handling
jwahdatehagh Mar 23, 2026
4727412
Fix parsing static client config (via ENV)
jwahdatehagh Mar 23, 2026
7213e4a
Configure post logout redirect uri
jwahdatehagh Mar 23, 2026
e504f3c
Better client config
jwahdatehagh Mar 23, 2026
f80f6a4
Set app icon
jwahdatehagh Mar 23, 2026
6832095
Success / index handles
jwahdatehagh Mar 23, 2026
5761e7e
Add license
jwahdatehagh Mar 23, 2026
e009cae
Add note
jwahdatehagh Mar 23, 2026
a5a7a50
Hard fail on cookie key not set
jwahdatehagh Mar 23, 2026
0c73c52
Add more tests
jwahdatehagh Mar 23, 2026
9a0daec
Slim down .gitignore
jwahdatehagh Mar 23, 2026
56dcd40
Add cors config
jwahdatehagh Mar 23, 2026
1aa0abf
Custom hex nonces
jwahdatehagh Mar 23, 2026
db9cc5b
Proper loading indicator for redirect
jwahdatehagh Mar 23, 2026
d2b6f33
Refactor Page Dialog into `CardPage` component
jwahdatehagh Mar 23, 2026
e20be1d
Update conditionals
jwahdatehagh Mar 23, 2026
63b1cb0
Add server rendered preview
jwahdatehagh Mar 23, 2026
46de540
Set package name
jwahdatehagh Mar 23, 2026
9706ad6
Implement using SIWE ts lib
jwahdatehagh Mar 24, 2026
4b72e33
Harden auth code test
jwahdatehagh Mar 24, 2026
ae6f278
Refactor interaction endpoint and redirect
jwahdatehagh Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
.output
.nuxt
28 changes: 28 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Base URL of the OIDC provider (must match the issuer)
NUXT_OIDC_BASE_URL=http://localhost:3000

# Redis connection URL
NUXT_OIDC_REDIS_URL=redis://localhost:6379

# RSA private key in PEM format (auto-generated if not set)
# NUXT_OIDC_RSA_PEM=

# Require client secret for token exchange
NUXT_OIDC_REQUIRE_SECRET=false

# Ethereum RPC provider URL for ENS resolution
# NUXT_OIDC_ETH_PROVIDER=https://cloudflare-eth.com

# Default clients as JSON:
# Simple: {"client_id": "redirect_uri"}
# Rich: {"client_id": {"redirect_uri": "...", "client_name": "...", "logo_uri": "...", "client_uri": "...", "policy_uri": "...", "tos_uri": "..."}}
# NUXT_OIDC_DEFAULT_CLIENTS={}

# Cookie signing keys (comma-separated)
# NUXT_OIDC_COOKIE_KEYS=secret1,secret2

# WalletConnect project ID (get one at https://cloud.walletconnect.com)
NUXT_PUBLIC_EVM_WALLET_CONNECT_PROJECT_ID=

# Ethereum mainnet RPC URL
NUXT_PUBLIC_EVM_CHAINS_MAINNET_RPCS=
8 changes: 4 additions & 4 deletions .github/workflows/ai-on-demand.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: AI On-Demand Assistant
name: AI On-Demand Assistant
on:
issue_comment:
types: [created]
Expand All @@ -19,12 +19,12 @@ jobs:
ai-response:
uses: signinwithethereum/workflow-automation/.github/workflows/issue-response.yml@v1.0.0
with:
config-profile: "backend"
bot-mention: "@siwe-dev-ops"
config-profile: 'backend'
bot-mention: '@siwe-dev-ops'
enable-auto-labeling: true
enable-escalation: true
secrets:
DEV_OPS_BOT_CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.DEV_OPS_BOT_CLAUDE_CODE_OAUTH_TOKEN }}
DEV_OPS_BOT_APP_ID: ${{ secrets.DEV_OPS_BOT_APP_ID }}
DEV_OPS_BOT_PRIVATE_KEY: ${{ secrets.DEV_OPS_BOT_PRIVATE_KEY }}
DEV_OPS_BOT_ALLOWED_USER_LIST: ${{ secrets.DEV_OPS_BOT_ALLOWED_USER_LIST }}
DEV_OPS_BOT_ALLOWED_USER_LIST: ${{ secrets.DEV_OPS_BOT_ALLOWED_USER_LIST }}
6 changes: 3 additions & 3 deletions .github/workflows/ai-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ permissions:
contents: read
pull-requests: write
issues: write
actions: read
actions: read

jobs:
ai-review:
uses: signinwithethereum/workflow-automation/.github/workflows/pr-review.yml@v1.0.0
with:
config-profile: "backend"
config-profile: 'backend'
secrets:
DEV_OPS_BOT_CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.DEV_OPS_BOT_CLAUDE_CODE_OAUTH_TOKEN }}
DEV_OPS_BOT_APP_ID: ${{ secrets.DEV_OPS_BOT_APP_ID }}
DEV_OPS_BOT_PRIVATE_KEY: ${{ secrets.DEV_OPS_BOT_PRIVATE_KEY }}
DEV_OPS_BOT_ALLOWED_USER_LIST: ${{ secrets.DEV_OPS_BOT_ALLOWED_USER_LIST }}
DEV_OPS_BOT_ALLOWED_USER_LIST: ${{ secrets.DEV_OPS_BOT_ALLOWED_USER_LIST }}
24 changes: 12 additions & 12 deletions .github/workflows/publish-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ name: Publish Docker

on:
push:
branches: [ main ]
branches: [main]
release:
types: [published, created, edited]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Build and push image
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: signinwithethereum/oidc
username: ${{ github.actor }}
password: ${{ secrets.GH_PACKAGE_PUSH_TOKEN }}
registry: ghcr.io
tag_names: true
tag_semver: true
snapshot: true
- uses: actions/checkout@master
- name: Build and push image
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: signinwithethereum/oidc
username: ${{ github.actor }}
password: ${{ secrets.GH_PACKAGE_PUSH_TOKEN }}
registry: ghcr.io
tag_names: true
tag_semver: true
snapshot: true
85 changes: 13 additions & 72 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,78 +1,19 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
node_modules
.pnp
.pnp.js

# testing
coverage

# next.js
.next/
out/
build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
# Dependencies
node_modules/

# turbo
.turbo
.scratch
# Env
.env
dist
.scratch
.yarnclean
.scratch/*
.eslintcache

# Foundry
cache/
out/
.env.local
.env.*.local

# JS
node_modules/
# Nuxt
.nuxt/
.output/
.data/
.nitro/

#Hardhat files
cache_hardhat/
artifacts/
# Build
dist/

#Hardhat plugin files
typechain-types/
anvil.txt
c50.json
abis
tokens.json
.DS_Store
.turbo
_
.vercel
.astro
dist
web/public/*.js
_
# Misc
*.tsbuildinfo
next-env.d.ts
public/*.js
.open-next
.sst
.sentryclirc

# Sentry Config File
.sentryclirc
package-lock.json
yarn.lock
pnpm-lock.yaml
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
1 change: 1 addition & 0 deletions .nuxtrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
setups.@nuxt/test-utils="4.0.0"
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.nuxt
5 changes: 5 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"singleAttributePerLine": true,
"singleQuote": true,
"semi": false
}
Loading
Loading