我需要实现Oauth 2.0协议。 我只是想知道整个工作流程对我来说是否清楚,如果我误解了某些事情,我希望你帮助我。 这就是我的理解:
使用我的客户端应用程序的用户必须登录我的系统。他提出 电子邮件和密码(防止注册)到服务器(也许是 Tomcat上的servlet)。这个servlet验证了他的凭据,所以给出 他是grant_type,在我的情况下是"密码"类型(或 凭证一个?)。 [第一个问题:资源所有者是否有问题 还有CLIENT_ID和CLIENT_SECRET给用户?如果是这样,我该怎么办? 生成它们?如果不是这样,谁将这些东西提供给用户?是个 对于使用我的应用的每个用户,CLIENT_ID是否相同?第二个问题: grant_type只是一个显示授权类型的字符串 (意思是:"密码"或"凭证"或"隐含")?]
现在用户已获得grant_type并已经过验证 凭证,他需要access_token和refresh_token。他必须 将grant_type,client_id和client_secret发送给 authentication_server(也包装token_endpoint),和 给他access_token和refresh_token。现在的用户,什么时候有 向resource_server询问一些提供access_token的内容 和refresh_token。如果access_token已过期,则 resource_owner检查refresh_token是否仍然有效,以及 生成另一个access_token。 [第三个问题:为什么 refresh_token非常有用吗?如果一个男人在中间偷走了 请求,他将获得access_token和refresh_token, 所以虽然access_token将过期,但他可以使用其他人获取 refresh_token,对吗?第四个问题:用户是否必须发送 请求somethign时始终是access_token?]
感谢大家。祝你有美好的一天。 :D:D