gpt4 book ai didi

c# - 如何从 token 中提取并获取声明?

转载 作者:行者123 更新时间:2023-12-02 11:11:48 31 4
gpt4 key购买 nike

我一直在寻找确切的答案,但似乎大多数答案都是客户来电,超出了范围。

问题:我已经有一个访问 token 访问 token 。如何使用仅给定访问​​ token 的 C# 代码获取声明?

我认为:以下是相同的问题,但没有我认为合适的答案。

How to get the claims out of a authenticated SecurityToken

How do I read claims from my Oauth token?

最佳答案

安装包Newtonsoft.Json

访问 token 只是 base64 编码的 JSON。您可以按如下方式解析 token

        string token =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ";
var parts = token.Split('.');
var decoded = Convert.FromBase64String(parts[1]);
var part = Encoding.UTF8.GetString(decoded);
var jwt = JObject.Parse(part);
var name = jwt["name"].Value<string>();

更新

  1. 不建议在客户端解析访问 token ,访问 token 应该只在资源服务器上解析。
  2. 您必须验证资源服务器上的访问 token 才能使确保 token 在途中没有被篡改。
  3. 大多数时候你不需要像上面那样解析 token,只需使用推荐同时进行验证和解析的 JWT 库。例如

    app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

关于c# - 如何从 token 中提取并获取声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43839214/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com