在OAuth2.0中,OAuth2.0 provider负责保护暴露在外的资源,第三方应用客户端Client可以独立的或代表用户Owner来访问这些受保护的资源,provider提供token令牌的管理和验证来实现此功能,还必须提供一个授权确认页面,让用户Owner确认第三方Client是否可以访问这些受保护的资源 。
令牌相较与密码,有这些优势:1.令牌是短期的,到期会自动失效 2.令牌可以被数据所有者撤销,会立即失效 3.令牌有权限范围(scope)。
关于OAuth可以关注 阮一峰讲OAuth和江南一点雨讲解OAuth
OAuth非常好的一点就是考虑了实际应用中的复杂场景,总结了四种授权方式(authorization grant ):
- 授权码(authorization-code)
- 隐藏式(implicit)
- 密码式(password)
- 客户端凭证(client credentials)
注意,不管哪一种授权方式,第三方应用都必须先到系统申请客户端 ID(client ID)和客户端密钥(client secret),还要填写redirect_url。这是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。