【发布时间】:2015-03-27 23:35:34
【问题描述】:
我为我的 Web 应用程序创建了一个 API,现在我想集成 OAuth2 协议以保护对我的 API 的访问。有可能,或者我可能会重写所有的 API?
谢谢
【问题讨论】:
我为我的 Web 应用程序创建了一个 API,现在我想集成 OAuth2 协议以保护对我的 API 的访问。有可能,或者我可能会重写所有的 API?
谢谢
【问题讨论】:
完全可以集成 OAuth2 层,但这取决于您编写 API 的方式。让我们从头开始。
您使用什么语言? 取决于此,有许多组件可以集成 OAuth 安全层。
但是,如果您想自己做,我会在某个项目中向您展示我是如何做到的。
在我的例子中,该协议的实现涉及 4 个表:oauth_access_token(其中存储用户的访问令牌)、oauth_client(可以获得访问令牌和刷新令牌的客户端)、oauth_refresh_token (其中存储了刷新令牌,最终可以交换访问令牌)和oauth_auth_code。
之后,您需要为您的 API 创建至少 2 个端点:
现在您需要创建一个 CRUD,开发人员将使用它来注册他们的应用程序,这些应用程序将与您的应用程序集成。记得询问回调 URL。注册后,您将向他们提供一个 clientID 和一个 clientSecret。有了这个凭证,他们就可以请求授权。
请记住,您的 API 必须使用 access_token 检查 Authorization 标头。如果它有效,则您可以授予对 API 的访问权限。
可能会在您的所有 API 调用上检查这一层,因此您需要一个中间件。根据您使用的语言或框架,这将非常容易实现。
希望这能有所帮助:)
【讨论】: