我正在为电子商务网站和应用程序创建API使用nodejs我们有一个API路由列表,每个路由都有多个端点考虑使用JWT等身份验证来访问这些端点,这样所有端点都可以只在身份验证后访问。
但是一些端点,如产品列表、搜索等,应该在没有身份验证的情况下访问,因为在加载页面时应该显示这些内容。
因此,我在JWT中为那些使用“Unless”的端点提供了例外。
这使得产品列表的API端点开放,任何人都可以访问它。
这是否正确?如果不正确,处理这种情况的最佳方法是什么?
前端:Flutter用于移动的应用Reactjs用于Web应用
1条答案
按热度按时间piv4azn71#
您有两种方法:
1.使用身份验证和授权方法(就像您提到的JWT或OAuth2)保护API
在第一种方法中,您可以做一些其他事情,生成并存储一些令牌(如Client-Key),并将它们提供给您的受信任客户端,然后创建一个授权系统来检查此人是否正在向您的端点发出请求,并将其发送给您,然后您检查该客户端密钥是否属于此人,以及他是否是真正可以访问您的端点的受信任客户端(即使是公共的或私有的),你应该考虑到客户端密钥永远不会改变,在下一步你可以用JWT等认证用户。
在第二种方法中,通过只允许特定的IP地址来限制对API的访问。