Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oauth 2.0 使用OAuth2,我应该从移动客户端向服务发送身份验证代码或令牌吗?_Oauth 2.0 - Fatal编程技术网

Oauth 2.0 使用OAuth2,我应该从移动客户端向服务发送身份验证代码或令牌吗?

Oauth 2.0 使用OAuth2,我应该从移动客户端向服务发送身份验证代码或令牌吗?,oauth-2.0,Oauth 2.0,因此,我从移动客户端对OAuth2的理解是: 移动客户端重定向页面以使用客户端id获取用户身份验证 资源持有者以auth\u代码 auth\u-code被交换为access\u-token和refresh\u-token 在上面,如果您有一个web服务支持您的移动应用程序,您将永久存储access\u token和refresh\u token,这将允许您继续访问用户的数据,前提是他们没有撤销您的权限 所以我的问题是:auth_code是否应该发送到服务,并在那里交换令牌?或者客户端应该交换身份

因此,我从移动客户端对OAuth2的理解是:

  • 移动客户端重定向页面以使用客户端id获取用户身份验证
  • 资源持有者以
    auth\u代码
  • auth\u-code
    被交换为
    access\u-token
    refresh\u-token
  • 在上面,如果您有一个web服务支持您的移动应用程序,您将永久存储
    access\u token
    refresh\u token
    ,这将允许您继续访问用户的数据,前提是他们没有撤销您的权限


    所以我的问题是:
    auth_code
    是否应该发送到服务,并在那里交换令牌?或者客户端应该交换
    身份验证码
    ,并将生成的令牌发送到服务?这无关紧要,或者不同的实现可能会有所不同?我假设客户端密码只存储在服务上,我的理解是需要将
    refresh\u令牌
    交换为新的
    access\u令牌
    ,但我不确定
    auth\u code

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

    客户机可以直接请求令牌,也可以将令牌委托给服务—没有硬性规定要求您执行其中一项操作


    我想说,如果服务要使用代币,那么将代币委托给服务可能是最有意义的——因此代币留在那里。如果客户要使用令牌,这两种方法都是有效的。

    啊,我明白了-在客户机上拥有客户机密不是一种安全风险吗?我的理解是,这就像是你的应用程序的密码,证明你就是你。是的,将客户机密存储在客户机中是一种安全风险——因为你无法阻止有人从中提取它,但是,如果您将客户机机密存储在服务上,那么客户机可以请求并使用它,而无需存储它,因此只要客户机和服务之间的通信是加密的(在任何情况下都应该是加密的),安全性就可以了