Skip to content

feat(login-flow): warn when a login flow was started from another network - #65740

Draft
karlitschek wants to merge 1 commit into
masterfrom
feat/login-flow-v2-initiator-address
Draft

karlitschek wants to merge 1 commit into
masterfrom
feat/login-flow-v2-initiator-address

Conversation

@karlitschek

@karlitschek karlitschek commented Oct 20, 2026 •

Copy link
Copy Markdown
Member
  • Resolves: #

Summary

One of seven small, independent core changes needed by a planned intrusion_detection app. Each can be reviewed and merged on its own:

  1. feat(security): let apps refuse requests early with request guards #65735 – request guards: let apps refuse requests early, on every entry point
  2. feat(auth): make AppPasswordCreatedEvent public and dispatch it everywhere #65736 – public AppPasswordCreatedEvent, dispatched everywhere
  3. feat(auth): allow apps to invalidate a single token #65737 – IProvider::invalidateTokenById() in the public token provider
  4. feat(sharing): dispatch an event when a share link access fails #65738 – ShareLinkAccessFailedEvent
  5. feat(security): dispatch an event when a password reset is requested #65739 – PasswordResetRequestedEvent
  6. feat(login-flow): warn when a login flow was started from another network #65740 – login flow v2 remembers where it was started and warns on another network ← this PR
  7. feat(2fa): allow apps to ask for the second factor again in a session #65741 – IChallengeRequester: ask for the second factor again in a session

TODO

  • Description by the author
  • Manual test on a live instance

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

AI disclosure: this change was written with Claude Code (claude-opus-5-5) and reviewed by the author; every commit carries an Assisted-by trailer.

🤖 Generated with Claude Code

…work

Login flow v2 now remembers the address that started a flow (new
nullable column login_flow_v2.initiator_ip). When the flow is granted
from another network of the same IP family, the grant page warns the
user that someone may be trying to get access to their account, which
is what a phishing link to someone else's login flow looks like. A
switch between IPv4 and IPv6 does not count, as that is common on
dual-stack devices.

After a flow is granted, LoginFlowV2GrantedEvent is dispatched with the
new app password, the starting address and the start time, so apps can
react, e.g. by notifying the user.

Assisted-by: ClaudeCode:claude-opus-5-5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
@karlitschek
karlitschek force-pushed the feat/login-flow-v2-initiator-address branch from 71d77b2 to b661c28 Compare October 25, 2026 19:40

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants