步骤如下。
(A)用户访问客户端,后者将前者导向认证服务器。
(B)用户选择是否给予客户端授权。
(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。
(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。
这里想请问,为什么要先拿授权码。然后在验证授权码后在拿token。为什么不直接在用户授权后直接拿token。这里不是很明白忘大侠指点。
因为要验证服务 oauth是 认证服务器 服务 用户 3个参与者,1个服务向1个用户请求认证服务器的权限,这时认证服务器至少要2个参数 服务标识和用户标识
因为直接给token,那么客户端的 secret与client_id 将不会参与。就是说服务器没有认证的客户端也可以获得token