如何将附加数据传递给 restful API 基本身份验证
How to pass additional data to restful API Basic authentication
我正在为一个项目开发我的第一个 restful API。
我了解并已使基本身份验证正常工作,使用格式 Basic username:password
,其中 username:password 是 Base64 编码。
目前,我们在 'username' 字段中传递用户的电子邮件地址,在 'password' 字段中传递用户的密码。
问题是电子邮件地址在应用程序中不是唯一的。它在应用程序中的每个组织都是唯一的。
因此,为了使用户成功登录,我们需要将另一个值传递给 API,它指示组织是什么(我们的想法是传递一个用于查找的密钥组织)
我的问题是基本身份验证过程只允许您传递两个值(用户名、密码),而我需要传递三个。有没有办法将更多数据传递给基本身份验证过程?或者我是否必须使用其他类型的身份验证来实现此目的?
我的想法是修改基本身份验证,使其采用三个值,例如:username:password:orgkey
我不知道这是否被允许或违反基本身份验证协议?
尽管这个问题确实与语言无关,但为了记录,我使用的是 Coldfusion 和 Taffy 插件。
如有任何指导,我们将不胜感激。
谢谢
正如我在回答中试图解释的那样,基本身份验证不是保护 Web API 的良好协议 here and here。
在测试自动化等方面支持它是可以的,但我不会在生产中使用它。您将很难保守密码的秘密,因为 JavaScript 和移动客户端都不能被信任保守秘密。
我不清楚为什么电子邮件地址在组织中不是唯一的。您不发送 at 符号 ('@') 后的部分吗?
您不能在基本身份验证凭据字段中引入其他字段。根据RFC7235,credentials字段只能包含:
credentials = auth-scheme [ 1*SP ( token68 / #auth-param ) ]
我会研究基于安全令牌的身份验证方案,例如使用 JWT tokens。
我正在为一个项目开发我的第一个 restful API。
我了解并已使基本身份验证正常工作,使用格式 Basic username:password
,其中 username:password 是 Base64 编码。
目前,我们在 'username' 字段中传递用户的电子邮件地址,在 'password' 字段中传递用户的密码。
问题是电子邮件地址在应用程序中不是唯一的。它在应用程序中的每个组织都是唯一的。
因此,为了使用户成功登录,我们需要将另一个值传递给 API,它指示组织是什么(我们的想法是传递一个用于查找的密钥组织)
我的问题是基本身份验证过程只允许您传递两个值(用户名、密码),而我需要传递三个。有没有办法将更多数据传递给基本身份验证过程?或者我是否必须使用其他类型的身份验证来实现此目的?
我的想法是修改基本身份验证,使其采用三个值,例如:username:password:orgkey 我不知道这是否被允许或违反基本身份验证协议?
尽管这个问题确实与语言无关,但为了记录,我使用的是 Coldfusion 和 Taffy 插件。
如有任何指导,我们将不胜感激。
谢谢
正如我在回答中试图解释的那样,基本身份验证不是保护 Web API 的良好协议 here and here。
在测试自动化等方面支持它是可以的,但我不会在生产中使用它。您将很难保守密码的秘密,因为 JavaScript 和移动客户端都不能被信任保守秘密。
我不清楚为什么电子邮件地址在组织中不是唯一的。您不发送 at 符号 ('@') 后的部分吗?
您不能在基本身份验证凭据字段中引入其他字段。根据RFC7235,credentials字段只能包含:
credentials = auth-scheme [ 1*SP ( token68 / #auth-param ) ]
我会研究基于安全令牌的身份验证方案,例如使用 JWT tokens。