了解OAuth2流程

Héc*_*tor 3 rest oauth

我正在开发一个消费使用OAuth协议的REST服务的Android应用程序.在第一个活动中,app显示登录屏幕.这是流程:

1)用户输入她的用户名和密码.

2)App向REST服务发出请求,提供用户名和密码.

3)REST服务检查凭据,如果正确,请求access_token我的OAuth2提供商服务器.

4)REST服务回答提供access_token和的应用程序refresh_token

5)在接下来的REST服务器请求(获取数据,如人,文章...)应用程序将提供access_tokenrefresh_token.

6)当REST服务处理请求时,将验证access_token(使用我的OAuth服务器的令牌信息端点).

7)如果access_token正确且未过期,REST服务将返回应用程序要求的数据.

当REST服务检测到access_token已过期时,请求另一个使用refresh_roken.

现在,我的问题:

当REST服务access_token在旧服务到期后检索新服务时,REST服务是否将该服务发送给该响应中的应用程序?

如果是这样,应用程序是否在每个请求/响应中检查是否access_token已从REST服务发送新的新消息?

我不知道我是否以正确的方式,我正在努力了解这一流程.

谢谢.

Han*_* Z. 10

假设没有涉及浏览器且应用程序(也称为客户端)使用所谓的资源所有者密码凭证授权,则流程为:

  1. 用户(也称为资源所有者)向客户提供他/她的用户名和密码

  2. 客户端向授权服务器发出令牌请求,提供用户名和密码

  3. 授权服务器检查凭据,如果它们是正确的,它会在响应中向客户端提供访问令牌和可选的刷新令牌

  4. 在对REST服务器的请求中(为了获取人,文章......等数据),客户端将提供访问令牌

  5. 当REST服务处理请求时,它将验证调用授权服务器的令牌验证端点的访问令牌,或者通过在本地验证令牌(例如,如果访问令牌是JWT).

  6. 如果访问令牌是正确的,没有过期并且具有正确的权限(也称为"范围"),则REST服务将返回客户端要求的数据

  7. 当客户端检测到access_token已过期时(例如,因为REST服务器返回错误),它会使用所谓的刷新令牌授权/流程使用刷新令牌向授权服务器请求另一个访问令牌