我想知道OAuth 1.0需要往返数据提供程序来交换访问令牌的授权请求令牌的原因是什么.
我对OAuth 1.0工作流程的理解是:
请求站点(消费者)从数据提供者站点(服务提供者)获取请求令牌.
请求站点要求数据提供者站点对用户进行身份验证,并传入回调.
一旦用户被认证并授权请求站点,则通过所提供的回调将用户引导回请求站点(消费者),该回调传递现在授权的请求令牌和验证码.
请求站点交换访问令牌的请求令牌.
请求站点使用访问令牌从数据提供者站点获取数据.
假设我做对了,为什么回调只是在步骤3中直接向请求站点提供访问令牌,从而消除了第4步?为什么需要交换访问令牌的请求令牌?它是否仅存在于需要用户手动输入验证码的消费者,并认为它比访问令牌本身更短更简单?
服务器是否只能将临时凭证"升级"为令牌凭据并保留相同的密钥和密钥?
然后,客户端可以在收到来自服务器的回调后立即开始进行经过身份验证的呼叫,并说明临时凭证已"升级".
如果临时凭证尚未升级(即客户端不等待回调),则认证呼叫失败.
所以问题是为什么在回调"交换"令牌凭证的临时凭证后对服务器进行额外调用?
我目前正在使用 oauth2 与 Google 实施身份验证。
我读过我应该缓存访问令牌以供以后使用,但我真的需要这样做吗?
我考虑过将其加密存储在会话中。如果它过期了,我会得到一个新的令牌。
另外,如果我需要缓存令牌,我如何知道它属于哪个用户?