An open source 2FA authenticator app for iOS and Android built using SocketSupply.
Open Authenticator is a free and open-source two-factor authentication (2FA) app designed to enhance the security of your online accounts. It supports both iOS and Android platforms and is built using the SocketSupply framework.
- Open Source: Fully open source, allowing for community contributions and transparency.
- Offline: Works without an internet connection.
- Secure: Uses industry-standard algorithms for generating time-based one-time passwords (TOTP).
- Note: While all of the OTP secrets are stored locally, they are currently stored using the localStorage API. This is not secure and will be replaced with a more secure storage mechanism in the future.
- User-Friendly: Simple and intuitive user interface.
- Cross-Platform: Available on both Android (TODO) and iOS.
- Open the app on your device.
- Scan the QR code provided by the service you want to enable 2FA for.
- Use the generated code to complete the 2FA setup on the service.
- Node.js and npm installed on your machine.
- Xcode (for iOS development).
- Android Studio (for Android development).
- A local build of SocketSuppply using the
next
branch and the relink instructions in that branch's README file.
-
Clone the repository:
git clone https://github.com/yourusername/open-authenticator.git cd open-authenticator
-
Install dependencies:
npm install
-
Link to the local SocketSupply build:
npm link @socketsupply/socket
Note: You will not be able to use the camera based features using the emulators, but you can use this setup for quick development of all other features.
- Run the app on an emulator:
npm run dev
-
Ensure that you have a configured
.sscrc
file in the root of the project with the necessary credentials. An example.ssrc
setup can be found in the.ssrc-example
file at the root of this project. Checkout the SocketSupply documentation for more information. -
Ensure the device is plugged into your computer and then issue the install command:
-
For iOS
npm run install:ios
-
For Android
npm run install:android
We welcome contributions from everyone! Please check our Contribution Guide to learn more.
This project is licensed under the MIT License. See the LICENSE file for details.