简介oauth2与微信认证
开发过微信公众号的朋友应该都看过这些字眼:令牌token,凭证ticket,oauth认证等。对于只开发过传统登录认证的朋友们第一次见到都多少会有点懵逼。今天将简单讲讲oauth2和微信中各术语之间的区别与意义。
token认证与oauth2
互联网公司为了提高平台的扩展性,开放一系列API,建立自己的技术生态圈。第三方开发者可以根据其开放接口API自定义自己的服务,既然与平台相关,那么势必会调用到平台的某些资源(resource,可以平台存储的图片,名称等)。
传统登录权限认证,第三方服务器作为用户的代理层,我们需要从用户手中获取到其在互联网平台上的账号和密码,然后登录平台,将其在平台中各种资源获取下来。从理论上这完全行得通,但是用户手中的密码在我们中间转了一层,就有可能被被窃取,而且权限远远大于用户原本的意图。
oauth就是在这种场景下顺势而生的,oauth2是一个简化版。oauth并不需要获取到用户的账号密码,而是仅仅获得用户在平台上某部分资源的权限。而这个权限的凭证,就是token。打个比方,加入你是一个大老板(授权和资源服务器),你拥有一个由众多小仓库组成的大仓库。当某天有个生意伙伴(第三方服务器)要求租赁仓库中小仓库1(资源),他向你交了押金(secret),你交给他一把小仓库1的钥匙(token)给他,这个伙伴就可以使用你大仓库中小仓库1,而不是整个仓库。
如下图所示,第三方服务器携带ap