mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-02-05 00:39:38 +03:00
🚀 Feature: Device Authorization Grant with QR code #562
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jonnywright on GitHub (Dec 11, 2025).
Feature description
I will preface this issue with the facts that I am a user of Pocket ID, by no means a developer, and not even a novice when it comes to OIDC / OAuth and the specifications on which they are developed, so my request may not even be possible within the specification. However, I think what I am trying to describe is RFC 8628, with specific emphasis on the "input constrained" element of the standard.
The feature has been posed in a comment in a previous issue (#267), however the issue was closed before the comment was made and I don't feel that the use case was fully understood before it was closed, hence raising it here.
Pitch
I have two specific (albeit edge) cases where this functionality would improve quality of life - I concede that this functionality is already possible using the existing short-code workflow, but implementing this feature would make the expereince more fluid in most cases and improve user experience.
I do have a few other examples but they make me look even more lazy than I am making myself look.
The current process requires the user to make the following steps:
The proposed process would require the user to take the following steps:
The proposed alternative is 2 fewer steps (slightly subjective how many, but I'd argue its objectively fewer steps), but regardless of this the interaction required by the user is far more fluid (e.g. no manual code entries).
This example assumes the user typically uses a mobile device as their compatible device and is therefore able to scan the QR code. The proposal is that this feature compliments the existing Sign in with login code feature - not replaces it.
@Norrodar commented on GitHub (Dec 22, 2025):
I’d like to add a "family perspective" to this. For non-technical users, the current manual code process creates significant friction. I often hear questions like: "Why do I have to visit a separate website just to watch Jellyfin?" or "Where am I supposed to enter this code?".
Explaining this process repeatedly is a burden for the person managing the instance. A QR code would make the flow "invisible" and intuitive: they just scan it, tap "Approve" on their phone, and they're in. It would drastically improve the user experience for family members and reduce the support overhead for admins.
@borsTiHD commented on GitHub (Jan 3, 2026):
I just had the same experience with the Home Assistant App on iOS. I can't use passkeys on that Situation and ended with the "login code", but it would helped here if it has this feature.
I would love to see that implemented.
@jonnywright commented on GitHub (Jan 21, 2026):
Looks like its coming in pull https://github.com/pocket-id/pocket-id/pull/1261
@Norrodar commented on GitHub (Feb 3, 2026):
Just letting you know that I'm currently working on this. It's really not an easy task, as it involves more than just "showing a QR code" or "adding 2-3 points to the current flow." I'm testing every possible way to use the QR flow, including auto-redirects when a Smart TV, car, or Xbox is detected. I’m also implementing a way to enter the confirmation code on the settings page instead of scanning the QR code—useful if the passkey device lacks a camera, like a desktop PC.
I am also trying to stay very close to RFC 8628 and other standards while investigating security measures to prevent JWT token theft.
A quick note about my background (for @stonith404): I completed an apprenticeship as a PHP/SQL/Java developer and worked in the field for about 5 years, but that was ~13 years ago. Since then, I’ve done some scripting and small tasks, but no deep development. I’m also not yet familiar with Go or Svelte. To be transparent: I am working on this using Claude Code Opus 4.5. However, I research the RFCs myself and create my own implementation plans before using Claude to generate code snippets. I then check these word-by-word to ensure they are correct.
Testing is entirely my own manual task, and I try to anticipate every possible move a user or system might make. I hope that’s okay with you, @stonith404. My goal is to avoid creating additional work for you, but I would appreciate a deep dive review later on to see if I missed anything or could improve the implementation.
@jonnywright commented on GitHub (Feb 4, 2026):
@Norrodar What do you mean it isn't easy? 😉 I joke, of course, and its amazing to hear that someone has a similar use case and has the ability (and willing) to take on something like this. Unfortunately, my development skills are just nowhere near good enough to even consider something like this (even with 🤖 agents assisting me), but I would love to have been able to contribute. I like some of the additional ideas you've had too - like auto-redirection for specific devices.
Thanks for updating and also thanks for giving your time to the project (that goes for @stonith404 too, obviuosly!). People like me (who cannot offer any kind of code contributions) do value the time and effort given by those who can.
@kmendell commented on GitHub (Feb 4, 2026):
Hey @jonnywright Elias has a tight schedule right now , so figured id answer you. The use of AI is okay with us, as long as its a assisted and tested implementation, and not fully vibe coded. We both use AI to help asist in development, or to use for long annoying tasks. Based on your background and explnation , it sounds good to me:). The main thing is complying with the OIDC spec, i was looking it up awhile back there nothing explicit about a QR code in the spec just as long as it contains the
verifcation_urlif i remember correctly.