Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在无状态RESTful API中标识未登录的用户_Angularjs_Api_Rest_Stateless_Auth Token - Fatal编程技术网

Angularjs 在无状态RESTful API中标识未登录的用户

Angularjs 在无状态RESTful API中标识未登录的用户,angularjs,api,rest,stateless,auth-token,Angularjs,Api,Rest,Stateless,Auth Token,我正在开发一个无状态RESTful API,它将被iOS应用程序和AngularJS浏览器应用程序使用。在此API中,任何与经过身份验证的用户相关的操作(添加新内容、编辑详细信息等)都需要身份验证令牌 现在,我的应用程序还要求未经身份验证的用户能够将物品添加到购物车中。这就是我不确定的地方。由于应用程序是无状态的,因此没有会话-如果用户尚未登录并获得访问令牌,我不确定如何识别用户 我正在考虑的一个解决方案是生成一些其他较低级别的令牌来标识这个未登录的用户。然后我可以在每次请求获取和修改购物车时发

我正在开发一个无状态RESTful API,它将被iOS应用程序和AngularJS浏览器应用程序使用。在此API中,任何与经过身份验证的用户相关的操作(添加新内容、编辑详细信息等)都需要身份验证令牌

现在,我的应用程序还要求未经身份验证的用户能够将物品添加到购物车中。这就是我不确定的地方。由于应用程序是无状态的,因此没有会话-如果用户尚未登录并获得访问令牌,我不确定如何识别用户


我正在考虑的一个解决方案是生成一些其他较低级别的令牌来标识这个未登录的用户。然后我可以在每次请求获取和修改购物车时发送此消息

这里描述的问题并不是你真的需要代币,而是你需要一种方法来唯一地识别特定的购物车

我基于这个问题的假设是,有一些通用的
/cart
端点,根据与它交互的人,它具有不同的内容。这种设计有点问题(正如您所看到的),因为每个用户都有一个唯一的购物车uri可能更好

/cart/[一些唯一的id]

然而,即使在这种情况下,您可能仍然希望使用某种形式的身份验证来标识修改购物车的人仍然被允许修改购物车

如果您使用的是OAuth2,最简单的方法就是创建一个新的授权类型。OAuth2是可扩展的,因此您可以添加一些“匿名”授权类型,它不需要任何信息,只提供一个承载令牌


在这种情况下,您的服务器必须始终确保令牌有效,但也要确保它仍然正确地禁止访问需要“真实身份验证”的端点。

可以将购物车存储在localStorage中。。。只有当用户准备好购买时才提交到服务器有趣的问题,您使用的是什么身份验证机制?@inf3rno用户输入其登录详细信息,作为回报,收到一个身份验证令牌,客户端将在每次后续请求中发送该令牌。@noel此身份验证令牌存活多长时间?@inf3rno我仍在评估。也许3天,也许更长。