当前,我正在从事一个项目,该项目需要跟踪并验证来自不同客户端的用户。这些客户中的每一个都是一个单独的网站。在数据库中,它们以其凭据存储,如下所示:
email: {
type: String,
required: true
},
security: {
password: {
type: String
},
apiKey: {
type: String
}
},
client: {
type: mongoose.Types.ObjectId,
ref: 'Client',
required: true
},
如果它们来自客户端本身,则应该能够使用电子邮件/密码组合进行登录;如果它们试图直接与API进行交互,则应使用电子邮件/ apiKey组合进行登录。
好吧,我现在的问题是,根据他们的请求来源,我在服务器上看不到任何可靠的身份验证方法。
此外,即使用户未经身份验证,客户端应用程序也具有来自服务器的读取权限以显示项目。
如果没有电子邮件/ apiKey组合的客户端之外的任何人,我如何确定这些用于读取数据的端点不能访问。
我研究了以下解决方法:
您有什么建议吗?我应该采用IP方式吗?还是有更好的解决方案?
谢谢!