是否有可以使用的“ GenerateJwt”方法?

奥拉夫·斯文森(Olaf Svenson)

我将Microsoft.AspNetCore.Authentication.JwtBearerSystem.IdentityModel.Tokens.Jwt用于我的.NET Core项目。在我的启动文件中,运行[Authorize]注释的配置设置当我使用自己的方法(示例)生成新令牌时,这对我来说效果很好

public object GenerateToken(Dictionary<string, object> payload)
{
    DateTime tokenExpiresAt = DateTime.Now.AddMilliseconds(1); // From config
    byte[] symmetricKey = Convert.FromBase64String("secret"); // from config
    SymmetricSecurityKey symmetricSecurityKey = new SymmetricSecurityKey(symmetricKey);
    
    SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor
    {
        Claims = payload,
        Expires = tokenExpiresAt,
        SigningCredentials = new SigningCredentials(symmetricSecurityKey, SecurityAlgorithms.HmacSha256Signature)
    };
    
    JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
    SecurityToken securityToken = tokenHandler.CreateToken(tokenDescriptor);

    string token = tokenHandler.WriteToken(securityToken);
        
    return new { token, tokenExpiresAt };
}

令牌的验证不需要执行,因为它是通过[Authorize]注释完成的我想知道是否有一种方法可以用来生成令牌,而不必自己编写代码?我将生成的令牌存储到数据库中,并且还需要返回到期时间。

所以是的,上面的解决方案对我来说很好,但也许是多余的:)

是否有采用令牌机密,有效负载和令牌到期时间的方法?例如TokenGenerator.Sign("secret", payload, tokenExpiresAt)

alphaz18

Microsoft库不支持本地发行令牌,因此Microsoft库中没有您想要的命令。但是,Microsoft确实会使用其服务蓝色广告将令牌作为身份服务器发行,这可能是它们最简单的方法。如果您只是这样做,那么您的工作方式基本上是可以的。而不是完整的身份验证框架,这是一个与您做非常相似的事情的示例:https//jasonwatmore.com/post/2019/10/11/aspnet-core-3-jwt-authentication-tutorial-with-example- api

如果您希望实施自己的完整身份验证服务,可以发行令牌。有一些相对通用的第三方库可以帮助您不必重新发明轮子,其中之一就是Identityserver4:https : //identityserver4.readthedocs.io/en/latest/index.html这是一个完整的身份提供程序解决方案。另一个是openiddict https://devblogs.microsoft.com/aspnet/bearer-token-authentication-in-asp-net-core/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否有默认的方法读取播放中的文件,即使在生产环境中也可以使用?

来自分类Dev

Minikube:是否有任何方法可以使driver = none使用入口

来自分类Dev

是否有默认的方法读取播放中的文件,即使在生产环境中也可以使用?

来自分类Dev

是否可以使用fetchAll方法将所有结果提取到数组中

来自分类Dev

是否有任何方法可以使用全局热键编写 OBS Studio 脚本?

来自分类Dev

是否有内置方法可以使用 Android Studio 添加不是图标的可绘制对象?

来自分类Dev

有没有一种方法可以使用宏来检测是否包含标准标头?

来自分类Dev

是否只有在调用了内部使用的所有回调之后,才可以使方法返回控制权?

来自分类Dev

有没有一种方法可以使用PyMongo检查collection.find是否返回false?

来自分类Dev

是否有任何方法可以使用strptime方法在python中减去两个不同的日期

来自分类Dev

是否可以使用ReSharper创建扩展方法?

来自分类Dev

是否可以使用addEventListener调用类方法?

来自分类Dev

是否可以使用getter / setter方法映射成员?

来自分类Dev

是否可以使用Sinatra视图中的细化定义的方法?

来自分类Dev

是否可以使用LD_PRELOAD覆盖主方法?

来自分类Dev

是否可以使用GET方法直接发送编码信息?

来自分类Dev

是否可以使用Mockito验证测试的对象方法调用?

来自分类Dev

是否可以使用clon()方法而不覆盖它

来自分类Dev

是否可以使用forEach方法更新MongoDb文档?

来自分类Dev

是否可以使用变量从特定对象调用方法?

来自分类Dev

是否可以使用addEventListener调用类方法?

来自分类Dev

是否可以使用Snap框架实现CONNECT HTTP方法?

来自分类Dev

是否可以使用Mockito完全停止某个方法的运行?

来自分类Dev

是否有一个脚本命令可以使用bash脚本从php文件执行特定的php方法

来自分类Dev

是否可以使用CDI注入没有生产者方法的自定义JBoss模块?

来自分类Dev

在学说中是否有任何方法可以使用通过 ssh 隧道连接来连接 mongodb 或 sql

来自分类Dev

是否有一种简单的方法可以使用 matplotlib 来回擦洗一系列绘图?

来自分类Dev

是否有任何解决方法可以使用多个“正确”指标在 TPU 上进行 keras 学习?

来自分类Dev

有什么方法可以使用sourceCpp()制作Infix函数

Related 相关文章

  1. 1

    是否有默认的方法读取播放中的文件,即使在生产环境中也可以使用?

  2. 2

    Minikube:是否有任何方法可以使driver = none使用入口

  3. 3

    是否有默认的方法读取播放中的文件,即使在生产环境中也可以使用?

  4. 4

    是否可以使用fetchAll方法将所有结果提取到数组中

  5. 5

    是否有任何方法可以使用全局热键编写 OBS Studio 脚本?

  6. 6

    是否有内置方法可以使用 Android Studio 添加不是图标的可绘制对象?

  7. 7

    有没有一种方法可以使用宏来检测是否包含标准标头?

  8. 8

    是否只有在调用了内部使用的所有回调之后,才可以使方法返回控制权?

  9. 9

    有没有一种方法可以使用PyMongo检查collection.find是否返回false?

  10. 10

    是否有任何方法可以使用strptime方法在python中减去两个不同的日期

  11. 11

    是否可以使用ReSharper创建扩展方法?

  12. 12

    是否可以使用addEventListener调用类方法?

  13. 13

    是否可以使用getter / setter方法映射成员?

  14. 14

    是否可以使用Sinatra视图中的细化定义的方法?

  15. 15

    是否可以使用LD_PRELOAD覆盖主方法?

  16. 16

    是否可以使用GET方法直接发送编码信息?

  17. 17

    是否可以使用Mockito验证测试的对象方法调用?

  18. 18

    是否可以使用clon()方法而不覆盖它

  19. 19

    是否可以使用forEach方法更新MongoDb文档?

  20. 20

    是否可以使用变量从特定对象调用方法?

  21. 21

    是否可以使用addEventListener调用类方法?

  22. 22

    是否可以使用Snap框架实现CONNECT HTTP方法?

  23. 23

    是否可以使用Mockito完全停止某个方法的运行?

  24. 24

    是否有一个脚本命令可以使用bash脚本从php文件执行特定的php方法

  25. 25

    是否可以使用CDI注入没有生产者方法的自定义JBoss模块?

  26. 26

    在学说中是否有任何方法可以使用通过 ssh 隧道连接来连接 mongodb 或 sql

  27. 27

    是否有一种简单的方法可以使用 matplotlib 来回擦洗一系列绘图?

  28. 28

    是否有任何解决方法可以使用多个“正确”指标在 TPU 上进行 keras 学习?

  29. 29

    有什么方法可以使用sourceCpp()制作Infix函数

热门标签

归档