仅在授权代码可用时实施其他授权

时间:2018-01-20 20:17:23

标签: oauth-2.0 access-token

我正在创建通过桌面应用程序公开API重新实现现有桌面应用的网络和移动应用。此API仅提供授权的授权代码授予路径,这需要我:

  1. 以某种方式将客户端机密安全地存储在应用程序中
  2. 实施PKCE&我的网络服务器中的隐式身份验证端点作为API的传递
  3. 拥有我自己的身份验证系统(通过auth0或同等系统),然后用户将其链接到他们的API帐户
  4. 2可能,或者3是我唯一真正的选择吗?

1 个答案:

答案 0 :(得分:0)

是的,2是可能的,并且比我想象的要简单得多。在以下示例中,客户端是网络或移动应用,服务器是您的服务器,而 API 是您尝试访问的API支持验证码

for web(隐含):

  1. 客户端向服务器发送标准隐式请求
  2. 服务器解析此请求,然后将其重新构建为Auth Code请求并转发到API
  3. API验证用户登录,并将验证码发送到服务器
  4. 服务器将验证代码发送回API
  5. API返回访问令牌并刷新
  6. 服务器仅返回访问令牌到客户端
  7. for mobile(PKCE):

    1. 客户端向服务器发送标准PKCE请求
    2. 服务器解析此请求,然后将其重新构建为Auth Code请求并转发到API
    3. API验证用户登录,并将验证码发送到服务器
    4. 服务器向客户端发送验证码
    5. 客户端向客户端发送验证码和验证者
    6. 服务器验证将验证代码发送回API
    7. API返回访问令牌并刷新