Skip to content

Conversation

@BGZStephen
Copy link
Contributor

Summary

Adds a feature flag gated implementation of tamper proof invite links for the UI > Settings > Users page where users are invited. Also updates the backend for email configured instances when sending out emails.

PAY-4394

Related Linear tickets, Github issues, and Community forum posts

Review / Merge checklist

  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)

@n8n-assistant n8n-assistant bot added core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Jan 7, 2026
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 8 files

@codecov
Copy link

codecov bot commented Jan 7, 2026

@currents-bot
Copy link

currents-bot bot commented Jan 7, 2026

E2E Tests: n8n tests passed after 8m 30.8s

🟢 609 · 🔴 0 · ⚪️ 38 · 🟣 3

View Run Details

Run Details

  • Project: n8n

  • Groups: 2

  • Framework: Playwright

  • Run Status: Passed

  • Commit: ec5be0f

  • Spec files: 142

  • Overall tests: 647

  • Duration: 8m 30.8s

  • Parallelization: 16

Groups

GroupId Results Spec Files Progress
multi-main:e2e 🟢 552 · 🔴 0 · ⚪️ 38 · 🟣 2 133 / 133
multi-main:e2e:isolated 🟢 57 · 🔴 0 · ⚪️ 0 · 🟣 1 9 / 9


This message was posted automatically by currents.dev | Integration Settings

@BGZStephen BGZStephen requested review from a team and guillaumejacquart and removed request for a team January 7, 2026 11:02
inviteAcceptUrl = `${domain}/signup?token=${token}`;
} else {
// Use legacy invite links when feature flag is disabled
inviteAcceptUrl = `${domain}/signup?inviterId=${owner.id}&inviteeId=${id}`;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so the issue was that previously with brute force you could find a working invite link and add yourself to a random org but now because we sign it with JWT we can validate that the link was actually signed correctly and is therefore safe?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly, you can no longer just provide an arbitrary inviteeId as you'd need a method of signing the token to spoof that it came from the back-end

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

noice! thanks :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR LGTM but let's rather wait for someone with more context to approve ;)

Copy link
Contributor

@guillaumejacquart guillaumejacquart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved with minor comments. signup handler will come next, is that right ?

@BGZStephen BGZStephen merged commit 4793610 into master Jan 8, 2026
77 checks passed
@BGZStephen BGZStephen deleted the PAY-4394-use-tamper-proof-links-in-invites-ui branch January 8, 2026 09:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants