我需要创建一个我自己的 OAUTH 提供程序,以验证第三方应用程序请求,我不想使用 Google、Twitter、LinkedIn、Microsoft 提供程序。我必须创建自己的提供程序来验证请求并将访问 token 返回给客户端。但是网络上的所有帮助都与外部提供商(Google、LinkedIn、Twitter、Facebook ..)有关。任何人都可以帮助我创建自己的自定义提供程序吗?

请您参考如下方法:

正如罗兰所说,如果你通过规范,它会非常直接。

在高层次上,这是您需要做的来支持 AuthCode 授权模式:

假设:
您的应用程序拥有用户。

  • 向每个第 3 方应用程序发布 clientid/secrets。
  • 在您的服务器上创建端点
  • 授权
  • token

  • 当客户端到达授权端点时,如下所示:
    /authorize?response_type=code&client_id=<clientID>&state=xyz&redirect_uri=http://thirdparty.com
  • 将客户端重定向到登录页面。
  • 验证用户提供的用户名/密码。
  • 如果成功,请使用 authCode 调用第 3 方客户端重定向 URI。
  • 如果失败,调用第 3 方客户端重定向 URI 并出错(预发布)。

  • 示例回调在这里 https://thirdparty.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz
    然后客户端将使用 authcode 调用/token URI,如下所示:
    /token?grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=http://thirdparty.com 
    

    生成一个 token ,将它存储在 clientID、UserId 上,然后用 token 响应。
    像下面这样
    { 
       "access_token":"2YotnFZFEjr1zCsicMWpAA", 
       "token_type":"example", 
       "expires_in":3600, 
       "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", 
       "example_parameter":"example_value" 
     } 
    

    当第 3 方访问您的服务/资源时,根据客户端和用户 ID 验证 token 并授予或拒绝访问权限。

    这是开始,但您可以使用范围和其他 OAuth2 模式进行更多自定义。


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!