Oauth 2.0 使用OAuth2,我应该从移动客户端向服务发送身份验证代码或令牌吗?
因此,我从移动客户端对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是否应该发送到服务,并在那里交换令牌?或者客户端应该交换身份
auth\u代码
auth\u-code
被交换为access\u-token
和refresh\u-token
access\u token
和refresh\u token
,这将允许您继续访问用户的数据,前提是他们没有撤销您的权限
所以我的问题是:
auth_code
是否应该发送到服务,并在那里交换令牌?或者客户端应该交换身份验证码
,并将生成的令牌发送到服务?这无关紧要,或者不同的实现可能会有所不同?我假设客户端密码只存储在服务上,我的理解是需要将refresh\u令牌
交换为新的access\u令牌
,但我不确定auth\u code在使用授权码请求令牌时也需要客户端密码
客户机可以直接请求令牌,也可以将令牌委托给服务—没有硬性规定要求您执行其中一项操作
我想说,如果服务要使用代币,那么将代币委托给服务可能是最有意义的——因此代币留在那里。如果客户要使用令牌,这两种方法都是有效的。啊,我明白了-在客户机上拥有客户机密不是一种安全风险吗?我的理解是,这就像是你的应用程序的密码,证明你就是你。是的,将客户机密存储在客户机中是一种安全风险——因为你无法阻止有人从中提取它,但是,如果您将客户机机密存储在服务上,那么客户机可以请求并使用它,而无需存储它,因此只要客户机和服务之间的通信是加密的(在任何情况下都应该是加密的),安全性就可以了