Oauth 调用后端API时通过access\u令牌或id\u令牌标识用户
在API调用中识别用户的正确方法是什么 我正在使用来保护我的API并管理用户身份验证/注册过程。我“认为”我清楚两件事:Oauth 调用后端API时通过access\u令牌或id\u令牌标识用户,oauth,oauth-2.0,auth0,Oauth,Oauth 2.0,Auth0,在API调用中识别用户的正确方法是什么 我正在使用来保护我的API并管理用户身份验证/注册过程。我“认为”我清楚两件事: access\u token允许客户端应用程序正确访问我的后端API。换句话说,我需要将带有API调用的access\u令牌发送到后端,以便访问API端点 id\u token的主要目的是提供有关用户的后端API信息,例如id、姓名、电子邮件等 假设我在这两点上是正确的,我如何让后端API知道用户是谁?我认为我不能在同一个呼叫中同时发送access\u token和id\u
access\u token
允许客户端应用程序正确访问我的后端API。换句话说,我需要将带有API调用的access\u令牌
发送到后端,以便访问API端点id\u token
的主要目的是提供有关用户的后端API信息,例如id、姓名、电子邮件等access\u token
和id\u token
。那么我要打两个电话吗
我当然可以在我的API调用负载中包含用户信息,但这不是一个安全问题吗?恶意用户可能会在API调用之前更改用户信息,并将自己呈现为其他人
我不清楚如何让后端API知道用户是谁
附:这里有更多信息,以备不时之需:
- 所有用户身份验证、注册和令牌都由处理
- 我的后端API是在
中创建的,配置为接受ASP.NET Core
代币。这工作正常,即我发送API调用中从Auth0
获得的Auth0
access\u令牌,并且我能够访问我的端点
- 我现在正在
中开发一个移动应用程序,它通过ReactNative
对用户进行身份验证,并调用myAuth0
后端API来实现它提供的所有功能ASP.NET Core
如果它在这里有帮助的话,是一个实现它的方法。我是否正确地理解了您的理解,您只在访问令牌中接收用户Id,并在您自己的数据库中查找用户,然后缓存用户数据以供后续API调用?如果是这样的话,这似乎是一个好的、干净的方法,但肯定代价高昂。在我的例子中,我使用Azure Redis来缓存数据,从Azure服务中提取缓存的用户数据比从令牌中获取数据要昂贵得多。我还尝试将其他用户数据放入访问令牌中,但在Auth0服务中遇到了一些问题。只是想遵循标准的方法。你是对的,这是有成本的——但你只在第一次收到访问令牌时支付成本——每60分钟为每个用户支付一次。当然,您可能更喜欢其他能够实现您目标的解决方案。出于兴趣,这里有一个我的单页应用程序在线示例,您可以快速运行,以了解最终用户的性能-当您单击Expire Token然后刷新时,API会进行查找:感谢您的回复。看起来你描述的方式是推荐的方式。关于
Auth0
的这一部分文档基本上证实了您的方法是正确的:不幸的是,在我的情况下,缓存并不便宜,因为我的应用程序是使用Azure的云应用程序,所以成本比在服务器内存中缓存数据要高一些。然而,安全是首要的,所以我会把它看作是“做生意的成本”。再次感谢你的帮助。