2

图片描述

这里以oauth的密码认证方式举例

首先是一个登录的过程

  • A.B.用户访问客户端

  • C.通过POST方法,发送用户名和密码到认证服务器

  • D.同时,认证服务器使用已设定的client_idclient_secret,以及grant_type='password'结合用户提交过来的用户名密码进行认证

  • E.验证通过后,认证服务器给客户端返回带有 token_type expires_in access_token refresh_token 的数据;不通过会返回错误信息。

接下来是访问资源的过程

资源服务器上的某些资源是需要用户验证才可以访问的,在laravel中一般通过中间件auth:api来保护这些资源。当已获取access_token的用户需要访问这些资源,则需要进行下面的操作。

  • F.用户可通过任意方法请求资源服务器,但在请求的同时,需要在headers中带上这些信息:Accept:application/json,Authorization:Bearer +access_token。注意!Beareraccess_token之间有个空格。

  • G.认证通过,服务器返回相应的数据;认证不通过,服务器返回错误信息


Chiu
312 声望5 粉丝