@thomaschaplin/image-to-totp
Version:
image-to-totp converts qr code images to totp codes
82 lines (56 loc) • 2.47 kB
Markdown
<img src="assets/logo.png" alt="logo" width="213" height="213" />




image-to-totp is a library to generate totp codes from a QR code image with a single API.
```
npm install @thomaschaplin/image-to-totp
```
Find full example [here](https://github.com/thomaschaplin/image-to-totp/blob/master/examples/src/image-to-totp.ts) but see the below code snippet
<img src="./src/__tests__/fixtures/2fa.png" alt="example-qr-code" width="100" height="100" />
```
src/
images/
example1.png
example2.png
```
```ts
import { imageToTotp } from "@thomaschaplin/image-to-totp";
import * as path from "path";
const example = async (account: string) => {
const projectBaseFolder = path.join(__dirname, "../");
const imagesFolder = path.join(projectBaseFolder, "src/images");
const totp = await imageToTotp(`${imagesFolder}/${account}.png`);
console.log(`Account: ${account} - ${totp}`);
};
example("example1"); // Account: example1 - 034624
example("example2"); // Account: example2 - 084841
```
This repository allows you to take a QR code image and turn it into a TOTP code.
This project uses:
- [jimp](https://github.com/oliver-moran/jimp)
- [jsqr](https://github.com/cozmo/jsQR)
- [otpauth](https://github.com/hectorm/otpauth)
Make sure you have [Node.js](https://nodejs.org/en/) installed on your machine
- Clone this repository
`git clone git@github.com:thomaschaplin/image-to-totp.git`
- Change directory `cd image-to-totp`
- Install the dependencies `npm install`
- Transpile the code `npm run build` or `npm run watch`
- Run the tests `npm test`
- Run the tests with coverage `npm run test:coverage`
- Run the tests with mutation testing `npm run test:mutation`
---
Image by
<a href="https://pixabay.com/users/mohamed_hassan-5229782/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5661868">mohamed
Hassan</a> from
<a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5661868">Pixabay</a>