For testing new concepts and ideas

Dr-Swopt e45a50d12b integrated socket to publish agent palns and exeuction results 10 ماه پیش
src e45a50d12b integrated socket to publish agent palns and exeuction results 10 ماه پیش
test e02e606c63 setup 1 سال پیش
.gitignore 21e1b4aaf3 ffb productino to use atlas vector DB 11 ماه پیش
.prettierrc e02e606c63 setup 1 سال پیش
AgentQueryPlan.json e45a50d12b integrated socket to publish agent palns and exeuction results 10 ماه پیش
AgentResultCompiler.json e45a50d12b integrated socket to publish agent palns and exeuction results 10 ماه پیش
README.md 9250806ea4 changes to update steps for setting up https 1 سال پیش
analyze.prompt 8d54143582 added harvest components 1 سال پیش
eslint.config.mjs e02e606c63 setup 1 سال پیش
gemini-embedding-service-key.json b1575fd3a0 change embedding models to use google's 10 ماه پیش
justfortesting-328703-80166a275d93.json b1575fd3a0 change embedding models to use google's 10 ماه پیش
nest-cli.json 37e20e994c face recognition integration 10 ماه پیش
package-lock.json b1575fd3a0 change embedding models to use google's 10 ماه پیش
package.json b1575fd3a0 change embedding models to use google's 10 ماه پیش
test.prompt 8d54143582 added harvest components 1 سال پیش
tsconfig.build.json f7f5fe7488 udpate facial rec 10 ماه پیش
tsconfig.json 990ec9ed07 restructuring and added tree service 1 سال پیش

README.md

🔐 WebAuthn Passkey Demo (Angular + NestJS)

This is a full-stack demonstration of passwordless authentication using WebAuthn passkeys, built with:

  • Frontend: Angular 20 (Standalone Components + Material)
  • Backend: NestJS
  • Authentication: WebAuthn via @simplewebauthn

✨ Features

  • 🔐 Passkey-only login — no email input required
  • ✅ Discoverable credentials (platform or cross-device)
  • 📲 Cross-device support using synced passkeys
  • 🎨 Clean Angular Material UI
  • 🧪 Ideal for learning, demos, or prototyping WebAuthn

🧰 Tech Stack

Layer Tech
Frontend Angular 20, Angular Material
Backend NestJS
Auth @simplewebauthn/server + browser
Hosting NestJS serves Angular build
Tunnel ngrok for HTTPS development

🚀 Getting Started

1. Clone or Download the Project

Download this project from Google Drive or clone it if hosted on Git later. https://drive.google.com/file/d/1isU4QjH3Vz30y4SXM2RRt2zgkl02No4j/view?usp=sharing

cd your-project-directory

2. Clone or Download the Project

dependencies already installed in this case. just extract the program.

3. Expose via ngrok or preferred method

setup: https://dashboard.ngrok.com/get-started/setup/windows npx ngrok http 3000 Copy the exposed Url

4. Update Config Files

Update the URLs ..\Mobile Authentication Sample\sample-auth-backend\src\config.ts Update the URL ..\Mobile Authentication Sample\web-app\src\app\config.ts

5. Angular Build

npm run nest This will enable NestJS to serve the frontend statically

5. Start the app

in ..\Mobile Authentication Sample\sample-auth-backend run npm run start

🔐 Setting up Trusted Local HTTPS with mkcert

  1. Install mkcert powershell> choco install mkcert powershell> mkcert -install (Run PowerShell as Administrator to ensure root CA is installed.)

  2. Create a certs folder in your backend directory powershell> cd E:\Task\Mobile Authentication Sample\sample-auth-backend powershell> mkdir certs

  3. Generate a trusted certificate powershell> mkcert -cert-file certs\local-cert.pem -key-file certs\local-key.pem localhost 127.0.0.1

Optional LAN access: powershell> mkcert -cert-file certs\lan-cert.pem -key-file certs\lan-key.pem localhost 127.0.0.1 192.168.1.50

(Make sure hostname/IP matches certificate SAN.)

  1. Update NestJS to use HTTPS ts> const httpsOptions = { key: fs.readFileSync(join(dirname, '..', 'certs', 'local-key.pem')), cert: fs.readFileSync(join(dirname, '..', 'certs', 'local-cert.pem')), }; ts> const app = await NestFactory.create(AppModule, { httpsOptions });

  2. Restart your browser Access https://localhost:3000 or https://:3000 (must match SAN).

  3. Notes:

    • Chrome/Edge trusts Windows root store automatically.
    • Firefox may require manually importing rootCA.pem from mkcert -CAROOT.
    • Always regenerate certs if changing hostnames or LAN IPs.