Skip to content

synle/otp

Repository files navigation

otp

A basic web application developed using Remix.js and React. This app offers Azure AD Single Sign-On (SSO) login functionality and enables you to oversee Multi-Factor Authentication (MFA) Time-Based One-Time Password (TOPT) tokens from various providers.

Background

What is OTP?

OTP stands for "One-Time Password." It is a security feature commonly used in two-factor authentication (2FA) systems to enhance the security of online accounts and transactions. OTPs are temporary codes or passwords that are valid for a single use or a short period of time, typically 30 to 60 seconds.

Why I am doing this?

Numerous apps offer the capability to sync and manage your OTPs. However, many of them suffer from common issues, including limited cross-platform support (restricted to Windows, Mac, Android, or iOS), deficiencies like the absence of search and sorting features, inconsistent user experiences across various platforms, reliance on the vendor for ongoing support, vulnerability due to their large size making them attractive targets for hackers, and more.

Tech Stacks

  • Remix JS / Node JS.
  • MUI.
  • Instascan for QR Code scanner.
  • otplib for OTP code generation.
  • Data is currently persisted using file. Encryption will come at a later dates.
  • Azure AD for OAuth / authentication.

Features

List of OTP Items

This will display a comprehensive list of all OTP items that have been added or synchronized. image

QR Code View

This facilitates the process of scanning or registering with a new app, such as Google Authenticator or Twilio Authy. image

Edit OTP View

The Edit OTP view enables you to modify the name of the OTP, along with OTP code. image

New OTP View

This new OTP view enables you to generate a new OTP item. image

QR Code Scanner

The QR code scanner within the new OTP view provides a fast way to scan a QR code for adding a new OTP item. image

How to run in dev?

Update the .env file for the Azure AD login. Then rename the file as .env.

npm run dev

# test locally
ngrok http 3000

How to run in prod?

Ensure that your .env file accurately reflects your environment. Some functionalities, such as Camera API Access and OAuth, necessitate serving the app over an HTTPS protocol. You have the option to host it independently or utilize ngrok to proxy or tunnel traffic to your local machine.

npm run build
npm start

About

A webapp to store and render TOTP tokens

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published