我正在创建一个Angular应用程序,并且我无法围绕正确的方式来保证我的应用程序及其用户的安全。保护角度应用程序
我一直在阅读上许多栈的讨论,但我相信我的思念发生了什么事的一些核心的理解,请纠正你看到下面写的任何错误。
到目前为止,我有很多(目前主要是假设的)资源路由的西纳特拉服务器。用户可以使用电子邮件地址和密码创建一个帐户,该电子邮件地址和密码在与BCrypt进行哈希处理之后存储在数据库中。用户登录时,通过电子邮件从数据库中检索记录,并检查密码以进行身份验证。从这一点我不确定如何继续。
在此之前,我只是设置一个会话变量并有服务器检查该变量,以便存在正确路线在用户登录。现在我的应用程序(当前)是一个单独的HTML页面,它使用Angular和ui-router来显示不同的内容,所以大部分请求都只是返回JSON内容。
这是我的理解是RESTful应用程序一般不应使用会话,或者更确切地说,服务器应该相同,以相同的请求并没有塑造一个响应自己的数据。 但是,如果我不在会话变量中存储某些内容,服务器如何知道发出请求的客户端具有正确的权限?而且会话还没有存储在浏览器中,因此不是服务器的一部分?
我从我已阅读相信,就可以创建令牌基本上是一个大的随机字符串,该字符串返回到客户端,也将其存储在一个时间戳的数据库。然后,客户端在提出请求时提供此令牌,并且服务器命中数据库以验证其是否存在并且有效。但客户端是否也必须将该字符串存储在cookie中?我猜想角度应用程序可以将令牌存储在一个变量中,该变量在使用ui-router时会持续存在,但如果用户使用地址栏导航则不会。
我也不明白基本身份验证可能会或可能不适合这张图片。任何帮助将不胜感激,并指向一些优秀的资源,我可能会更好地理解这些概念。
谢谢我会研究它 – ErikAGriffin
这正是我所期待的,文章也澄清了会话/ cookies。谢谢。 – ErikAGriffin