- 与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。
- 权限
- 前端在cookie中只有session id和xsrf-token信息,在向后端发送请求时自动带上cookie中的这些session id信息即可。
- 不过有时候还需要代码中特意把cookie中的xsrf-token信息放到请求的header中,用于后端进行验证,避免xsrf攻击。
- 如果前端想做权限检查,通常平台或者OAuth服务会提供独立的接口,会返回当前session id/用户的权限/scope信息(这个借口有可能不需要拥有特别的scope检查,所有正常用户都可以调用)。
- 后端在接收到前端的http请求时,通常已经会有通用服务/模块提前将session id转成JWT格式的身份信息,这时后端接收到的http请求的authorization字段中就是JWT,包含了scope等权限和身份信息。
- 所以此时后端就可以用这些scope来做权限检查。
- 也可以继续把JWT token放在自己向平台发起的请求头的authorization字段中,相当于用当前用户的权限去做事情。
- 前端在cookie中只有session id和xsrf-token信息,在向后端发送请求时自动带上cookie中的这些session id信息即可。