qqlyatt
2022-03-23 15:08:20 +08:00
我认为大概是这样的结构:前端页面,前端服务器,网关,授权服务器,业务资源服务器也就是 API 服务器。流程大概是这样的:用户点击某些简单功能时,不需要知道用户是谁,也就不用登录;当用户点击某些重要功能是,要知道用户是谁,有没有请求这个功能 API 的权限。用 OAUTH2+JWT 模式的话,这时候就要前端服务器就要携带授权类型 header 和 redirect_uriheader 跳转到授权服务器的登录页面,让用户输入身份信息(一般是用户名密码),授权服务器验证完用户的身份信息,验证失败就返回 401 未认证成功响应,验证成功就返回授权码。前端服务器再拿着授权码并携带自己的身份信息 client_id 和 client_secret ,redirect_uri 向授权服务器请求 Token ,授权服务器验证成功,响应 Token 。||||前端服务器保存 Token 。||||当用户点击业务功能 API 时,前端服务器为这个 request 携带上 Token ,请求到网关,由于网关启动时已经从授权服务器获取了验证 Token 的公钥,这时候就验证这个 Token 可用性和未被修改就行了,验证成功后,网关放行跳转到指定的业务资源 API ,资源服务器给出业务响应。这样整个流程就结束了。