作者回复: 令牌放在localstorage并不是特别安全的,如果客户设备丢失,有可能被黑客获取,然后被黑客利用。这个目前没有办法完全避免,主要要靠合理设置令牌的有效期,另外,如果发现令牌被盗,oauth2支持主动申请吊销令牌。对于安全特别严格的应用,建议使用授权码模式,在此模式下,令牌在服务器端,不会跑到浏览器中。对于涉及交易的操作步骤,在令牌的基础上,一般要求用户进一步校验确认(比如手机验证码等)。
作者回复: token过期,简单做法让用户重新登录获取新的token;比较灵活的做法,可以使用refresh token,后台自动检查token过期时间,在临近过期之前使用refresh token换取新的token。
作者回复: 嗯,这里有个事务要完善,作为演示案例简化了。实际生产中要考虑分布式事务性,可以考虑用异步消息进一步解耦。
作者回复: 可以考虑将oauth2服务也注册到注册中心,本案例架构上也ok。实际生产中,oauth2一般和网关平行布署,外面的应用可能直接访问oauth2服务,这个时候一般用nginx反向代理+域名方式,不通过注册中心。