OAuth2 简介
OAuth 是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等),并在这个过程中无须将用户名和密码提供给第三方应用。通过令牌(token)可以实现这一功能,每一个令牌授权一个特定的网站在特定的时段内允许访问特定的资源。
OAuth 让用户可以授权第三方网站灵活访问它们存储在另外一些资源服务器上的特定信息,而所有内容。对于用户而言,我们在互联网应用中最常见的 OAuth 应用就是各种第三方登录,例如 QQ 授权登录、微信授权登录、微博授权登录、GitHub 授权登录等。
例如用户想通过 QQ 登录今日头条,这时今日头条就是一个第三方应用,今日头条需要访问用户存储在 QQ 服务器上的一些基本信息,就需要得到用户的授权。如果用户把自己的 QQ 用户名/密码告诉今日头条,那么今日头条就能访问用户存储在 QQ 服务器上的所有数据,并且用户只有修改密码才能收回授权,这种授权方式安全隐患很大,如果使用 OAuth 协议就能很好地解决这一问题。
OAuth2 是 OAuth 协议的下一版本,但不兼容 OAuth 1.0。0Auth2 关注客户端开发者的简易性,同时为 Web 应用、桌面应用、移动设备、IoT 设备提供专门的认证流程。