谈论 authorization_code 授权类型。在 OpenID Connect 提供者的授权端点中,我们向依赖方提供了一个授权代码,然后他们使用此代码向令牌端点发出反向通道请求(不涉及浏览器)。所以问题是,如何在令牌端点区分这个用户?我猜这个调用不存在会话,因为它是一个反向通道请求。可以使用哪些方法来识别用户。存储在内存中的 HashMap 是否是理想的解决方案?
1 回答
0
将其存储在 aHashMap中是一种无法扩展的解决方案,因为内部内存不是跨服务器节点共享的。
您必须将其存储在某种形式的持久存储中
- 一个 SQL 数据库
- NoSQL 数据库
- 键值数据库
请注意,您不仅需要能够确定创建它的用户,还需要确定客户端,因为客户端不需要验证自己来获取代码。还要知道,您需要能够确定给定代码所涵盖的范围,并检测代码的重复使用,以及在重复使用的情况下,撤销关联的访问令牌。
另一方面,您需要能够轻松地再次忘记代码。它们是短期使用的,在 ttl 之后将它们留在身边是没有用的。
您将有类似的要求来存储您生成的访问令牌、刷新和 id 令牌,因此构建也可以用于这些的东西是有意义的。
于 2018-10-13T07:21:54.843 回答