0

我正在为一个项目开发我的第一个 RESTful API。

我了解并已使基本身份验证正常工作,使用Basic username:password用户名:密码为 Base64 编码的格式。

目前,我们在“用户名”字段中传递用户的电子邮件地址,在“密码”字段中传递他们的密码。

问题是电子邮件地址在应用程序中不是唯一的。它在应用程序中每个组织都是唯一的。

因此,为了使用户成功登录,我们需要向 API 传递另一个值来指示组织是什么(这个想法是传递一个用于查找组织的密钥)

我的问题是基本身份验证过程只允许您传递两个值(用户名、密码),而我需要传递三个。有没有办法将更多数据传递给基本身份验证过程?还是我必须使用其他类型的身份验证来实现这一点?

我的想法是修改基本身份验证,使其采用三个值,例如:用户名:密码:orgkey 我不知道这是否允许或违反基本身份验证协议?

虽然这个问题确实与语言无关,但为了记录,我使用的是 Coldfusion 和 Taffy 插件。

任何指导将不胜感激。

谢谢

4

1 回答 1

2

正如我试图在此处此处的回答中解释的那样,基本身份验证不是保护 Web API 的好协议。

可以支持它用于测试自动化等,但我不会在生产中使用它。您将很难将密码保密,因为 JavaScript 和移动客户端都不能被信任来保密。

我不清楚为什么电子邮件地址在组织中不是唯一的。您不是在 at 符号 ('@') 之后发送部分吗?

您不能在基本身份验证凭据字段中引入其他字段。根据RFC7235,凭证字段只能包含:

    credentials = auth-scheme [ 1*SP ( token68 / #auth-param ) ]

我会研究基于安全令牌的身份验证方案,例如使用JWT 令牌

于 2015-08-01T02:24:09.643 回答