For testing new concepts and ideas

Dr-Swopt ad312b0efa udpated to include multi modal usage 7 tháng trước cách đây
src ad312b0efa udpated to include multi modal usage 7 tháng trước cách đây
test a57ae44f20 langchain openai implementation so far 7 tháng trước cách đây
.gitignore 21e1b4aaf3 ffb productino to use atlas vector DB 9 tháng trước cách đây
.prettierrc e02e606c63 setup 1 năm trước cách đây
README.md 9250806ea4 changes to update steps for setting up https 10 tháng trước cách đây
analyze.prompt 8d54143582 added harvest components 10 tháng trước cách đây
eslint.config.mjs e02e606c63 setup 1 năm trước cách đây
gemini-embedding-service-key.json b1575fd3a0 change embedding models to use google's 8 tháng trước cách đây
justfortesting-328703-80166a275d93.json b1575fd3a0 change embedding models to use google's 8 tháng trước cách đây
nest-cli.json 8a26f34beb restructuring of files 7 tháng trước cách đây
package-lock.json ad312b0efa udpated to include multi modal usage 7 tháng trước cách đây
package.json ad312b0efa udpated to include multi modal usage 7 tháng trước cách đây
test.prompt 8d54143582 added harvest components 10 tháng trước cách đây
tsconfig.build.json f7f5fe7488 udpate facial rec 8 tháng trước cách đây
tsconfig.json a57ae44f20 langchain openai implementation so far 7 tháng trước cách đây

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.