oauth2 的使用

发布时间:2024年01月15日
Oauth2的四种角色:

? ? ? 举个简单的例子说明下这四个角色:用户 张三 登录CSDN,张三没有注册过CSDN所以他选择微信登录,他使用微信扫描二维码 后的登录成功

? ? ? 1、资源所有者,在上面的例子中 资源所有者 就是张三这个用户

? ? ? 2、资源服务器,就是保存用户资源的,就是上面例子中的微信,微信中存储着用户的信息;

? ? ? 3、客户端,就是上面说的CSDN,就是需要获得用户信息的,在客户端发起授权请求并引导用户去授权服务器获得授权许可;

? ? ? 4、授权服务器,用于生成token,客户端拿这个token去资源服务器获得用户信息,也是上面例子中的微信;

微信授权认证的简单流程:

? ? ? ?1、客户端首先需要拿公司的营业执照去微信开放平台注册,注册成功后微信开放平台生成appId和appSecret 表示这个客户端在微信中的唯一标识;

? ? ? ?2、用户登录CSDN时选择使用微信扫码登录,用户使用微信扫描二维码后,此时微信开放平台会生成一个token通过二维码中的重定向地址返回给CSDN;

? ? ? ?3、CSDN通过token再次向微信开放平台发起请求,获取用户信息,微信开放平台返回用户信息(包含 user_id,电话、姓名、地址等),CSDN通过这些用户信息是否存在,如果存在则跳转到用户首页,如果不存在则根据这些用户信息创建一个用户;

? ? ? ? 在上面的流程中,第二步生成token、第三步中使用token获得用户信息 对应的就是授权服务器和资源服务器,也都是在微信中完成的;

?

Oauth2的四种授权模式:就是获取 token的几种模式

? ? ? ?1、授权码模式:首先通过client_id等获得授权码,然后根据授权码获得token;

? ? ? ?2、简化模式:通过用户名 和 密码就可以获取token;

? ? ? ?3、password模式:用户和密码是在?UserDetailsService 的实现类中指定;

? ? ? ?4、客户端模式:通过 client_id 和?client_secret 就可以获得token;

下面链接是 oauth2 的使用demo,四种模式的访问参考?AuthorizationServerConfig2 中的注释;

? ? ? ?除了这四种模式还有刷新令牌获取token的操作,当token过期时使用refresh_token刷新令牌,客户端模式和简化模式获取token时不返回refresh_token 所以无法使用刷新令牌;

链接:https://pan.baidu.com/s/1h5XrqnZiADhmPp8y2O1z_w?pwd=rota?

文章来源:https://blog.csdn.net/qishiheyongshi/article/details/135604138
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。