用户 应用前端 应用后端 认证端 用户资源 1. 访问应用页面 2. 正常请求接口 3. 登录过期或未登录,返回401,(返回:client_id,state,redirect_url) 4. 重定向到认证页(url参数:client_id+state+redirect_url) 5. 重定向到之前指定的redirect_url(url参数:code,state) 6. 前端解析code,state交给后端(传入:code,state) 7. 拿code去认证端换oauth_token(传入:client_id,client_sceret,code) 8. 返回oauth_token给应用后端(返回:oauth_token) 9. 头部携带oauth_token请求用户信息(请求头携带oauth_token传入) 10. 返回用户信息(返回:用户信息) 11. 保存用户信息,生成应用token返回给前端(返回:应用token) 12. 前端记录应用token并相应用户 用户 应用前端 应用后端 认证端 用户资源
注意:如果想让用户认证完成后重定向回原来访问的那个页面,需要在服务器返回401的时候在localstorage中记录下来当前页面的url,并在认证完成时跳转回那个url