【发布时间】:2016-09-30 10:15:31
【问题描述】:
概述
我目前正在为一个图像共享应用程序创建一个 API,该应用程序将在网络上运行,并且将来某个时候在移动设备上运行。我了解 API 构建的逻辑部分,但我仍在努力满足自己对身份验证部分的要求。
因此,我的 API 必须可供全世界访问:具有访客访问权限的用户(例如,未登录的人可以上传)以及注册用户。因此,当注册用户上传时,我显然希望用户信息与请求一起发送,并通过我的数据库中的外键将该用户信息附加到上传的图像。
通过 OAuth2 进行身份验证 - 实现
我已经了解 OAuth2 是 API 身份验证的最佳选择,因此我将实施这一方法,但我真的很难解决如何处理 my em>情况。我想过使用client credentials 授权并为我的网络应用程序生成仅一个 凭据集,并让它使用client secret 向API 发送请求以获取访问令牌并让用户执行东西。用户注册过程本身将使用此授权处理。
但是当用户注册并登录时呢?我现在如何处理身份验证?这需要另一笔拨款来接管吗?我正在考虑在用户登录期间进行一些授权过程,以生成新的访问令牌。这种做法有错吗?
我需要什么帮助
我需要您就如何为我的案例正确处理身份验证流程提供意见。这种双向认证过程可能不是我需要的,但这是我理解的方式。非常感谢您的支持。
【问题讨论】:
-
您正在为您的 API 构建什么样的客户端?它是从浏览器调用您的 API 的 JavaScript 应用程序吗?还是在服务器上运行?
-
@MvdD 这将是一个调用 API 的 Javascript Web 应用程序,是的。
-
@Aborted 澄清一下,当您说“我的网络应用程序”时,您指的是在浏览器中运行的 javascript 应用程序?
-
@kag0 是的,我说的是一个完全用 Javascript 制作的 ReactJS 网站。
-
@Dugi - 只是好奇:你最终使用了什么解决方案?
标签: authentication oauth-2.0 credentials api-design user-accounts