我需要创建一个我自己的 OAUTH 提供程序,以验证第三方应用程序请求,我不想使用 Google、Twitter、LinkedIn、Microsoft 提供程序。我必须创建自己的提供程序来验证请求并将访问 token 返回给客户端。但是网络上的所有帮助都与外部提供商(Google、LinkedIn、Twitter、Facebook ..)有关。任何人都可以帮助我创建自己的自定义提供程序吗?
请您参考如下方法:
正如罗兰所说,如果你通过规范,它会非常直接。
在高层次上,这是您需要做的来支持 AuthCode 授权模式:
假设:
您的应用程序拥有用户。
当客户端到达授权端点时,如下所示:
/authorize?response_type=code&client_id=<clientID>&state=xyz&redirect_uri=http://thirdparty.com
示例回调在这里
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 模式进行更多自定义。