Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Update RFC#91 with new token format #105

Merged
merged 5 commits into from
Jun 26, 2023
Merged

Conversation

mydea
Copy link
Member

@mydea mydea commented Jun 21, 2023

This PR updates RFC #91 with an adjusted token format. We did some experimentation and started implementation and noticed shortcomings of the JWT format, so we decided to change course here to a more simple base64 format.

Rendered RFC

if not token.startswith("sntrys_") or token.count('_') != 2:
return None

# Note: We add == to the end of the string, because we remove the base64 padding when generating the token
Copy link
Member

Choose a reason for hiding this comment

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

Why do we remove the padding when generating the token? Can we just keep the padding in place so that client-side decoding is simple?

Copy link
Member Author

Choose a reason for hiding this comment

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

the idea is to have "nicer" tokens without the == in them, from a users perspective. I don't have a super strong feeling here, maybe we also leave this out as this is not the end of the token string anymore (as the secret is at the end) 🤔 It doesn't matter that much if there is == in the middle of the token I'd say.

Copy link
Member Author

Choose a reason for hiding this comment

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

After giving it some more thought, I will adjust this to allow padding for the encoded payload, as it is in the middle of the token and there are also other special characters (e.g. / or -) in the base64 encoded string, it makes it easier to allow this. We just make sure to have no padding at the end of the secret.

@mydea mydea force-pushed the fn/update-org-token-format branch from 63d8c3f to 12e9a38 Compare June 22, 2023 10:48
@mydea mydea merged commit a018ea4 into main Jun 26, 2023
@mydea mydea deleted the fn/update-org-token-format branch June 26, 2023 09:19
mydea added a commit to getsentry/sentry that referenced this pull request Jun 26, 2023
This PR adjusts the token format of the new org auth tokens from using
JWT to a custom format based on base64 encoding.
This should result in nicer endings of tokens, and also makes the tokens
considerably shorter.

Related to getsentry/rfcs#105

---------

Co-authored-by: Matthew T <matthew.trostel@sentry.io>
@oioki oioki mentioned this pull request Sep 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants