代码之家  ›  专栏  ›  技术社区  ›  Modika

将oAuth与资源所有者密码凭据授予一起使用时,正确的流程是什么

  •  0
  • Modika  · 技术社区  · 11 年前

    我希望为基于RESTful超媒体的API构建一个客户端,在审查了许多选项之后,我正在学习如何将oAuth*变成授权访问API的实际方法。

    我想我已经理解了整个oauth的概念,即根据客户端(是否受信任),规范提供了几个流,以便从授予客户端访问权限的资源所有者(用户)的角度“信任”客户端(应用程序)。

    由于我正在构建的应用程序直接是服务生态系统的一部分,它将属于可信客户端部分,因此我决定实施资源所有者密码凭据授予,但这是我的知识被术语和oAuth要提供的确切角色弄糊涂的地方,我的大脑关闭了:)

    我认为这就是流程(还有一些更技术性的想法):

    1. 通过登录表单,资源所有者提供他们的凭据
    2. 将详细信息提交给服务器(在本例中为express.js应用程序)
    3. 该应用程序通过一些本地机制根据商店验证用户凭据
    4. 如果用户不存在或验证失败,则返回登录
    5. 如果用户确实存在并且通过了验证,则会启动将其凭据交换为令牌的机制(联系oAuth服务器并交换详细信息),该机制将加密/哈希信息存储在某处(可能是redis?)
    6. 一旦返回令牌,它就被存储在一个会话中,以便持久化到客户端(我认为trello.com会做一些类似的事情,因为他们有一个令牌cookie,但我可能错了)

    这是一个可以接受的流程吗?我似乎找不到任何可用的例子,作为目前唯一的开发人员,最好能得到一些反馈。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Modika    11 年前

    最终不需要定义我自己的流,这只是资源所有者密码授予,我们在其中交换用户的凭据以获得可信客户端的oAuth令牌。