我正在尝试用代码交换访问令牌,但它的格式很奇怪。 我期待一个 JWT 令牌,但我得到的是这样的东西:
发布-
https://login.microsoftonline.com/common/oauth2/v2.0/token
client_id=?
scope=User.Read
code=?
grant_type=authorization_code
client_secret=?
redirect_uri=?
{
"token_type": "Bearer",
"scope": "User.Read",
"expires_in": 3600,
"ext_expires_in": 3600,
"access_token": "EwB4A8l6BAAUbDba3x2OMJElkF7gJ4z/VbCPEz0AAWFHRrdsZ4LrR7xaC4YHcQKYbIVUr9iZ7QotvAC57guruw+WSbgzggrIvcrGZfZumyqk7QbveeY6Ai/QJDTWIyEGp0xCEKVoNfZCgfviQATXr0gK+sdE1qRS5lWPLFApP6/CeVxF6m9TsIOxfghTKAeIZ7u8geUojjt4qKb+0jvaLiimCYQCYckzcNPhDjd5F2hdY/MCfMO1lbO7ovee2YQSAEKf5EBrySmMImLnos5Umz6UB1V4lO0uAbL7nKsRy3QX/U2LTcaXyTjVsOTBzLuZfAT0RKimKXoxjtJ8DcW7cI3FYGR6l8fjMQXKLkwBOauiRniv6/y2zJfrVvi3bUYQZgAAEJDr3QYnJrUsVhKwjjwFHBJAAoqUpBk/JK10NX+xlsZiLheYRMA8FICnJ02i5UIANZwMjfzyLWBlSID5HNNCK60gkjsHkQ01Pmqru1a/oSTNeyAdqjOYhTvVUhKmAWDwEaDhLOk03nbrAqoQO0eojLxPw3HiXQodCCo2m68ha7lFbcZqWCOuEXJulEgpp1iBjFLgL9xjLSn9TGu2QnYHoUqoKK1daHOaPcGRet2deotr4OGfh/eY6S/n/JNBIyxGei/LnuH3...
请注意,当您使用个人 Microsoft 帐户(Outlook)登录获取授权码时,您将获得此类令牌。
最初,我在浏览器中运行以下授权请求,并在使用 个人 Microsoft (Outlook) 帐户登录时收到此同意屏幕:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=appId
&response_type=code
&redirect_uri=https://jwt.ms
&response_mode=query
&scope= User.Read
&state=12345
授予同意后,我在地址栏中得到了
code
值,如下所示:
当我通过 Postman 使用上述
code
值生成令牌时,我得到的令牌不会采用 JWT 形式,如下所示:
POST https://login.microsoftonline.com/common/oauth2/v2.0/token
grant_type:authorization_code
client_id:appId
client_secret:secret
scope: User.Read
code:code_from_above_request
redirect_uri: https://jwt.ms
回复:
这是使用个人 Microsoft 帐户登录时令牌的“默认”格式,您无法验证它们。相反,您可以使用该令牌根据其拥有的范围权限来调用 MS Graph API:
GET https://graph.microsoft.com/v1.0/me
.onmicrosoft.com
结尾的组织帐户(本地租户用户)进行签名。
代码:JWT 代币:
参考:
为什么我的有效MS access_token无法用jwt.ms解析? - Stack Overflow 作者: