我正在使用Spring Security OAuth2并且当前实现了client_credentials和密码授予类型。我注意到客户既有范围又有权限。有人可以解释一下有什么区别吗?更具体地说,我正在使用JDBCTokenStore,而数据库模式有一个oauth_client_details表。
此外,
在oauth_client_details表中,我不确定以下字段是什么 用于:
web_server_redirect_url,access_token_validity,refresh_token_validity
一些澄清将非常有帮助和赞赏。
答案 0 :(得分:17)
我注意到客户有范围和权限
客户端只有范围,但我们可以考虑/将其用作权限(角色)。这是因为OAuth2规范没有解释范围的具体用法。
考虑到这一点,用户授权Twitter将用户的推文发布到Facebook。在这种情况下,Twitter将有一个范围 write_facebook_status 。虽然用户有权更改自己的个人资料,但这并不意味着Twitter也可以更改用户的个人资料。换句话说,范围是客户端权限/角色,而不是用户的权限/角色。
web_server_redirect_url
授权服务器将在成功授权后将请求重定向到其原始URL或回调(授权授权)。
access_token_validity
这是token_access到期时间,以秒为单位。设置为-1或0表示无限。如果将其设置为60,那么1分钟后,token_access将无效。您必须通过执行授权过程请求新令牌或使用refresh_token。
refresh_token_validity
这是refresh_token到期时间。