[FEATURE] registering a TOTP authenticator using a QR Code

Open
#1,826 2 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@khaledCSE is already working on this.

Since Oct 27, 2026.

  • #1921 by @tabishraza302 — closed without merging

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
62/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript

Research direction

Start by reading docs/MFA.md around lines 79–84 and locate the TOTP setup screen that currently displays the secret. Check how that screen handles the secret and its existing frontend tests. Done means users can scan a QR code generated from the same TOTP URI, with tests covering its display.

Written by the indexing model from the issue text.

Description

enhancement hacktoberfest help wanted security

Is your feature request related to a problem?

Currently, users are expected to copy or type the secret manually into their authenticator app:

Image

Describe the solution you'd like

Provide a QR code for scanning.

Describe alternatives you've considered

Copy the secret manually into an authenticator app.

Use Case

For convenience - simply scan the QR code on your mobile phone, which is standard practice.

Additional Context

In docs/MFA.md, it says

https://github.com/libredb/libredb-studio/blob/f6c6d3d3036e91b4f949e311102f0fbd7c3924e2/docs/MFA.md?plain=1#L79-L84

quoted text

Prefer to scan a QR code? Build the standard URI yourself and render it with any offline QR tool — Studio does not mint one, because doing so would mean the server handing the shared secret back over HTTP after startup:

otpauth://totp/LibreDB%20Studio:[email protected]?secret=YOUR_SECRET_HERE&issuer=LibreDB%20Studio

However, I don't see how this is relevant. Displaying the URI does not provide any additional security benefits compared to displaying a QR Code generated from the same URI.

Implementation Notes (Optional)

Some libraries:

Dominant language
TypeScript
Stars
810
Forks
158
Avg merge
10h 30m
Merged PRs (30d)
561

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from libredb/libredb-studio

All issues in libredb/libredb-studio

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.