-
Notifications
You must be signed in to change notification settings - Fork 19
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
Reverse engineering the auth token format #42
Comments
Could it simply be base-64 encoded binary data that they associate with account data in their database? I would think the token expiration is not included within the token itself, but rather they likely use the token as a UUID to lookup a record on their end. |
Possibly, but the expired error message references a Here are six more tokens, retrieved in quick succession.
|
Interesting. Have you considered fuzzing individual bytes until the ListenerState error displays? Also, I would imagine either some sort of session identifier or account identifier is included in the token, unless they are in fact using the token as a UUID that they look up on the backend. Perhaps hybrid, as I'm sure you were using the same user account in your collection of these auth tokens. |
I haven't tried all that thoroughly, but I did try changing random bytes in different areas. Only the very last nibble seems to be able to be changed without invalidating the token. |
It has come to my attention that the REST API authentication token is actually base64 encoded data.
When a token expires, Pandora sends the following message back, implying that the token stores some sort of state.
ListenerState in auth token does not match state in radio db
It's possible that this token may include useful information like when the token will expire. I intend to look into this further, and I'll document any findings here before collating anything meaningful into a page in a PR.
An example (expired) authentication token:
The text was updated successfully, but these errors were encountered: