OAuth 为什么不直接返回 token

731 阅读1分钟

我们知道,在使用 OAuth进行第三方授权的流程中,用户第三方首选后,服务方得到的并不是可以直接获取到用户数据的 access_token, 而是所谓的 code,服务方获得 code 之后再去授权服务器获得 access_token。

有人会疑惑,直接返回 access_token 不就好了?

没错,这样确实也能拿到用户信息,但这个 token 就已经暴露在浏览器上了,因为 access_token 一般都会有一段时间的有效期,那么任何得到这个 access_token 的人,都可以获得用户的个人信息数据。

假如采用 code 的方式去拿 access_token,code 时效性很短,而且是一次性的。这样获取 access_token 的操作,实际上是在服务方的 server 端完成的,这样这个敏感的 token 没有暴露到外界。