白话&图解&举例说明Oauth2的4种授权机制

授权码模式
适用于双方都有用户操作交互的情景,例如我们的平时的第三方使用微信登录。
白话&图解&举例说明Oauth2的4种授权机制_第1张图片
隐藏式
隐藏式是授权码模式的阉割版,主要适用于没有后端的应用网站,例如以前常见的个人开源博客利用QQ、微信等的登录信息回显用户的个人信息(昵称、头像)等。
白话&图解&举例说明Oauth2的4种授权机制_第2张图片
密码式
适用于高度可信任的应用,同样以QQ、微信等为例。以腾讯运营的游戏《英雄联盟》、《QQ飞车》等为例,我们可以在这些游戏的终端直接使用QQ账号+QQ密码等方式登录游戏,这是QQ对自家运营产品具有“高度信任”才采取的登录授权模式,不用担心游戏端采集用户信息,暴露用户密码(毕竟是自家产品)。
白话&图解&举例说明Oauth2的4种授权机制_第3张图片
凭证式
凭证模式是我们平时开发后端应用等用得最多的模式之一,比较常见的例如微信小程序服务端API采取的正是这种模式,微信小程序平台提供微信APPID(client_id)和微信开发密钥(client_secret),由开发者后台提交client_id和client_secret等信息返回token(即微信的access_token)。该模式的优点是交互简单,缺点就是只适合应用端与应用端的认证和授权,精细不到用户级别的。所以平时最多的场景就是应用端之间的认证和交互。

白话&图解&举例说明Oauth2的4种授权机制_第4张图片
附言,很多刚开始接触OAuth2.0的同学,容易误解OAuth2.0是某个框架,其实不然,OAuth2.0只是一种认证授权规范而已,就像JDBC一样,JDBC也只是数据库连接规范,并不是某种工具或框架。

你可能感兴趣的:(Java,java,安全)