rest - OAuth 2.0 是框架还是协议?
问题描述
我刚刚收到要求在 SSO(集中用户数据库/服务器)上的 REST API 上应用 Oauth2.0 身份验证。
我对 OAuth2.0 完全陌生。只是通过互联网学习概念。
我非常了解 OAuth2.0 的工作原理。访问承载令牌和刷新令牌的所有概念。
仍然困扰我的一件事是:
它是一个框架还是一个协议?
我的意思是要遵循某种标准或一组说明进行身份验证吗?
就我而言,我不关心使用 Facebook 或 Google 登录。
我只需要登录用户并获取访问和刷新令牌,并使用访问承载令牌验证基于用户的路由。
由于我一直在研究 Node.js 的官方 OAuth2.0 文档:
https://oauth2-server.readthedocs.io/en/latest/index.html
它所说的只是创建一个用于插入、获取、验证令牌的模型。
处理所有这些的自定义逻辑。
如果它是一个框架,它会自己处理所有事情,但据我所知,它并没有为开发人员提供太多东西。我在文档中看不到任何内置函数或方法。例如生成访问令牌、获取访问令牌、刷新令牌等。所有这些都基于自定义逻辑。
我仍在寻找可以通过调用简单方法来验证路由的简单 Oauth2 Nodejs 官方库。
因为如果 Oauth2 不是这种情况,我真的必须管理所有逻辑自定义方式,那么为什么我不应该使用 JWT?
我没有得到这个吗?任何人都可以帮助我解决这种困惑吗?
解决方案
它是一种协议,因为它定义了多方如何交换消息以将授权以操作 API 背后的资源委托给称为客户端的应用程序。它由此处的 IETF 标准征求意见 (RFC) 文档定义:https ://www.rfc-editor.org/rfc/rfc6749
它也是一个框架,因为它让实现者使用其他授权扩展协议。OpenID Connect 是处理身份验证的 OAuth2 扩展,在此处定义:https ://openid.net/specs/openid-connect-core-1_0.html
推荐阅读
- android - 如何获取应用内购买的订阅的当前状态,即购买
- javascript - 自动关闭弹出窗口
- sockets - 什么情况下bpf_get_socket_cookie()返回0
- lua - 罗技 Lua 脚本
- python - “with”语句中的交互模式
- amazon-web-services - Codepipeline/Codebuild pipelines 在创建特定的 github 分支时可以启动吗
- angular - 动态更改设置不适用于 ng2-smart-table 中的“noDataMessage”
- java - 输入将数组从一个类打印到另一个 Java(如注册数组)
- java - 使用 java 的 Mongodb 中的实体少持久性支持
- windows - 在通过网络服务帐户运行的服务中使用特定于用户的应用程序数据