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.