java中的令牌机制,如何验证访问令牌以访问基于令牌的机制中的受保护资源?...

您可以控制令牌内的信息 . 查看文章中的SimpleAuthorizationServerProvider类:

var identity = new ClaimsIdentity(context.Options.AuthenticationType);

identity.AddClaim(new Claim("sub", context.UserName));

identity.AddClaim(new Claim("role", "user"));

使用声明存储您需要的与用户,用户名或角色有关的任何内容,这就是您所引用的文章中发生的情况 . 生成的令牌已包含有关用户的信息 .

这取自文章:

第二种方法“GrantResourceOwnerCredentials”负责验证发送到授权服务器的令牌 endpoints 的用户名和密码,因此我们将使用我们之前创建的“AuthRepository”类并调用方法“FindUser”来检查用户名和密码是有效的 . 如果凭证有效,我们将创建“ClaimsIdentity”类并将认证类型传递给它,在我们的案例中为“bearer token”,然后我们将添加两个声明(“sub”,“role”),这些将包括在内在签名的令牌中 . 您可以在此处添加不同的声明,但令牌大小肯定会增加 .

这就是您不需要将令牌存储在任何位置的原因,令牌是自包含的,并且所有内容都以加密形式存储在其中 . 不要忘记,在添加包含用户名的声明之前,您已经验证了用户名和密码,因此您可以保证为有效的用户/密码组合正确创建令牌 . 当然,您不希望将密码存储在令牌内,令牌的整个要点是避免这样做 . 将密码始终传递给API确实增加了被盗的风险,令牌更好 .

最后,令牌在你控制的一段时间后到期,通常它们是短暂的,所以即使有人确实拿到了它们也不会持续很长时间 .

如果您通过https呼叫处理授权标头的方式,请注意如何传递令牌,那么您将受到保护,并且标头将被加密 . 这里的要点是永远不要在基本的http上发出这样的调用 .

您引用的文章的作者是该特定领域备受尊重的权威,目前是Microsoft MVP,您基本上处于良好的状态 . 继续阅读他的文章,但要注意细节 .

-----------与JWT格式相关的澄清--------------

查看创建令牌的调用并查看屏幕截图中返回的信息 .

在我的示例中,令牌包含实际的加密令牌,令牌类型,它到期的秒数,作为ClientID的受众,发布时间以及何时到期 .

这只是一个令牌的例子,你的看起来可能有点不同,但你得到了我希望的想法 . 使用邮递员查看令牌中的内容

在涉及到OAuth2时,有许多概念需要理解,它确实需要一些研究和实践 .

简而言之,你要求一个带有A Basic Authorization Header的令牌,你得到令牌,它告诉你它是什么类型,在我的情况下它是Bearer,所以这是我的下一个授权标头,用于对受保护资源的任何调用 .

我的建议是从小开始,一步一步,使用邮递员 Build 你的电话,并了解正在发生的事情 . 一旦掌握了这些知识,就会更容易进步 . 花了我大约6个星期的时间围绕所有概念,让我的第一次工作变得有效,但现在最多需要几个小时 . 祝好运

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值