因此,我正在尝试为我正在构建的这个 API 尽可能接近地实现 OAuth 2。我正处于需要生成 access_token 的地步,但是我正在尝试找出执行此操作的最佳方法。我读过一个地方,人们正在加密 revenant 信息和 access_token(如过期日期、客户端 ID 等),以防止在每个 API 调用上查找数据库。
我在想这个并想,生成 access_token 的方式如何处理撤销访问?我的意思是使用 OAuth 的优点之一是能够撤销对应用程序数据的访问,如果我只是使用加密数据而不在数据库中查找,如果我撤销应用程序,它仍然可以访问到我的数据,直到至少那个 access_token 过期。
我认为防止在关系数据库中查找的更好方法是将 access_token 存储在键/值数据库(如 redis)中,因为这样会更快一些。这样,如果有人撤销对应用程序的访问权限,它可以删除关系数据库中的记录和键/值数据中的记录。
我是否遗漏了什么,有没有办法对 access_token 使用加密数据,防止数据库查找每个 API 调用,并且可以随时撤销访问?