我正在使用 Snapchat API 尝试通过其 OAuth 流程登录应用程序。一旦用户通过 Snapchat 登录,我正在尝试反向工程(因为他们没有关于此的文档)如何获取某种唯一标识符,以便我可以将其与我的数据库中的本地用户关联起来。这是我以前在 Facebook 等平台上完成此操作的方式。用户通过 Facebook API 登录并获得访问令牌,我可以通过 Facebook API 提取用户的某种唯一 ID。
Snapchat API 仅允许您访问用户的显示名称和一些“externalId”,但我无法保证它不会改变。因此,我解码了 Snapchat 发给我的 JWT 令牌,并挑战了我对 JWT 令牌工作原理的理解。当我在 http://jwt.io 上解码令牌时,我看到负载为空,但是当调用https://kit.snapchat.com/v1/me端点时,该令牌有效。Snapchat 服务器如何识别我是谁?我一直认为 JWT 必须包括像 "sub" 这样的声明来标识用户。然后服务器可以使用该信息来知道我是谁。
在这种情况下,我的JWT负载为空,但上述端点仍然返回我的用户数据。这里发生了什么?当我的JWT令牌具有空负载时,服务器如何知道我是谁?对我来说,他们必须在服务器上存储我的JWT令牌的副本,这似乎不是使用JWT令牌的正确方式。也许我的理解非常错误。你有什么想法吗?
Snapchat API 仅允许您访问用户的显示名称和一些“externalId”,但我无法保证它不会改变。因此,我解码了 Snapchat 发给我的 JWT 令牌,并挑战了我对 JWT 令牌工作原理的理解。当我在 http://jwt.io 上解码令牌时,我看到负载为空,但是当调用https://kit.snapchat.com/v1/me端点时,该令牌有效。Snapchat 服务器如何识别我是谁?我一直认为 JWT 必须包括像 "sub" 这样的声明来标识用户。然后服务器可以使用该信息来知道我是谁。
在这种情况下,我的JWT负载为空,但上述端点仍然返回我的用户数据。这里发生了什么?当我的JWT令牌具有空负载时,服务器如何知道我是谁?对我来说,他们必须在服务器上存储我的JWT令牌的副本,这似乎不是使用JWT令牌的正确方式。也许我的理解非常错误。你有什么想法吗?