我正在使用node.js开发一个graphql服务器,并且正在使用auth0进行身份验证。我大部分完成了身份验证。我现在关注的部分是刷新令牌。这是我的流程。
我在IOS中有一个连接到graphql服务器的移动应用程序。 auth0的所有身份验证逻辑都是通过graphql服务器处理的,因此身份验证方面是客户端不可知的,宁愿将刷新令牌存储在服务器上以确保安全性。
当我尝试实现刷新令牌时会出现问题。现在,我正在考虑处理此流程。
这是引起我关注的地方。我不能只在服务器上自动刷新,因为客户端需要访问令牌。由于刷新令牌不会以任何方式使先前的访问令牌无效,因此攻击者可以攻击此端点以继续获取新令牌。由于客户端没有客户端ID或密码,因此它的安全性较低,因为由于添加了ID和密码,刷新令牌是安全的。除非通过登录,否则Auth0不允许您检索新的刷新令牌(如果可以的话,我将撤消刷新令牌并替换为新的令牌)。
Auth0似乎建议在移动设备上存储客户端机密,客户端ID,刷新令牌和访问令牌。这似乎是很多不应在设备上显示的信息。
如果您有任何建议,请告诉我,我觉得我缺少一些简单的东西。