2017-06-27 21 views
0

所以我来自移动客户端的OAuth2的理解是:使用OAuth2,我应该从移动客户端向服务发送授权码还是令牌?

  1. 移动客户端重定向页面上,使用客户端ID
  2. 资源持有者响应回来了,还auth_code
  3. auth_code一个access_token和交换来获得用户身份验证refresh_token

如上所述,如果您的网络服务支持您的移动应用程序,您将永久存储access_tokenrefresh_token,这将允许您继续访问用户的数据,只要他们没有撤销您的权限。

所以我的问题是:auth_code应该发送到服务,并在那里交换的令牌?或者客户应该交换auth_code,并将结果令牌发送给服务?它不重要,或者对于不同的实现可能不同?我假设客户秘密只存储在服务上,我的理解是需要将refresh_token换成新的access_token,但我不确定auth_code

回答

1

使用授权码请求令牌时也需要客户端机密。

客户端可以直接请求令牌或将其委托给服务 - 并没有一条硬性规则和快速规则说你应该这样或那样做。

我会说如果服务将使用令牌可能委托给服务是最有意义的 - 所以令牌留在那里。如果客户要使用令牌,这两种方法都是有效的。

+0

啊我看到了 - 不会让客户端的客户端机密是安全风险吗?我的理解是,这就像你的应用程序的密码,这证明你就是你。 – Rollie

+0

是的,将客户端密钥存储在客户端中是一种安全风险 - 因为您无法阻止某人从中提取客户端密钥,但是如果您将客户端密钥存储在服务中,则客户端可以请求并使用它 - 而不用存储它 - 只要客户端和服务之间的通信被加密(无论如何),安全性都是可以的 – MiMo

相关问题