oauth2.0授权码模式将自己的系统集成第三方应用做统一认证

有哪位做过使用oauth2.0授权码模式将自己的系统集成第三方应用做统一认证吗,麻烦指导下后端代码怎么写,完全没头绪

对于使用OAuth2.0授权码模式将系统与第三方应用集成统一认证,后端代码主要分为以下几步:

  1. 创建授权服务器,实现AuthorizationServerConfigurer接口。主要配置token存储、客户端信息等。
  2. 创建资源服务器,实现ResourceServerConfigurer接口。主要配置资源id,进行资源访问的保护。
  3. 客户端获取授权码,重定向到授权服务器登录页面,登录后会重定向回客户端网站,并返回授权码。
  4. 客户端使用授权码请求访问令牌。
  5. 使用访问令牌请求资源服务器的API。
  6. 资源服务器验证令牌,如果合法则返回资源信息。
    具体编码可以参考Spring Security OAuth2提供的示例:
    https://github.com/spring-projects/spring-security-oauth/tree/master/samples
    主要是以下几个类:
  • AuthorizationServerConfiguration: 授权服务器配置
  • ResourceServerConfiguration: 资源服务器配置
  • OAuth2ClientConfiguration: 客户端配置
  • UserController: 获取用户信息的接口
    这是一个完整的OAuth2授权码模式的实现流程,可以照着示例来实现与第三方应用的集成认证。
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/865965
  • 你也可以参考下这篇文章:基于oauth2协议实践统一认证授权
  • 除此之外, 这篇博客: Oauth2.0的基本使用中的 授权服务器和资源服务器分离后,测试访问 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 第一步:

    ​ 向授权服务器发送请求,拿到token。

    第二步:

    ​ 携带token访问资源服务器

    访问测试:

    #请求测试;password模式{GET请求}:http://localhost:9999/save
    #同时携带请求头:"key":"Authorization","value":"bearer ded6d6d4-1aa0-45d5-b91f-b6556425bf78"
    
    访问测试的时候,需要添加请求头Authorization,它的值为"bearer "开头,后接token,才能发送请求
    报错:
    # "error": "unauthorized",
    #    "error_description": "Full authentication is required to access this resource"
    同时在访问时候,需要注意controller中方法上的权限,权限不足也会报错
    
    

    补充:

    ​ 授权服务器和资源服务器分离情况下,可以访问授权服务器中声明的**/getUser**接口来获取当前登录用户的一些信息

  • 您还可以看一下 李月喜老师的企业微信开发第三方应用开发篇课程中的 网页应用登录,Oauth授权登录[H5应用]小节, 巩固相关知识点