对于允许客户访问其数据的customer,我想知道最合理的身份验证方法是什么。目前,API是基于OAuth 2.0的,具有授权代码流,但也存在一些挑战:
最近,我经常看到令牌是一种更容易进行身份验证的方法:
web前端中的
这条路有效吗?还有别的选择吗?是否可以在每次使用时更新刷新令牌的有效性,这样如果令牌被定期使用(并且与更新的令牌一起使用),则永远不需要新的登录?
发布于 2021-06-25 07:30:30
创建标准是为了帮助业界保持高水平的互操作性和安全性。您可以实现自己的解决方案,但很可能它不会像OAuth流那样健壮和安全。例如,在我看来,发出一个在被撤销之前有效的令牌是一种非常糟糕的做法。如果有人设法窃取这个令牌,只要您没有注意到正在发生什么奇怪的事情,他们就可以访问您的API。
您的客户可能需要一个简单的解决方案,但这意味着它将不安全。
如果它们实现OAuth流是一个问题,也许您应该提供您自己的SDK或库,这将使它们更容易使用流。一个调用方法getToken的库,所有细节都由库处理。
我也不同意这样的观点,那就是很难改变OAuth兼容的供应商。在大多数产品中,您可以很容易地更改端点的路径,并且参数和流是标准化的。您可以在用户从未注意到的情况下更改授权服务器(如果您有标准兼容的服务器)。
至于滚动会话,您可以实现它。每当使用刷新令牌来获取新的访问令牌时,您都可以发出一个新的刷新令牌,并延长过期时间。这样,只要用户继续使用,刷新令牌就可以无限期有效。
https://stackoverflow.com/questions/68115022
复制相似问题