我建立一个SPA与Laravel 5.5和角度4.我感到困惑的“最佳”(安全,可靠,最佳实践等)的方式进行身份验证的我的API请求。目前,我有一个传统的基于会话的登录系统,其中,在用户登录后,重定向到应用的整体,包含我的角应用 - 的索引页。所有后续与服务器的交互都是通过api调用完成的。发行,访问和使用API令牌与Laravel 5角4
遵循一些基本教程,我有以下设置:每个用户分配充当他们的API令牌60个字符的随机字符串。他们已经登录后,使用用户名和密码,该API令牌在头一个meta
标签直接输出到HTML。然后Angular抓取这个令牌并将它传递给每个API调用的头部。
不过,我已经读过,令牌不应该通过非SSL连接传递(以避免中间人攻击),并且令牌应该被自动生成/设置为过期等。
所以我的问题:
- 对于单页的应用程序,只使用内部API调用(不跨域)。它是合理的通过未加密的API令牌这样?
- 是否OK /安全输出API凭证直接进入META标记中的HTML?
最后一点,这似乎是使用Laravel的CSRF令牌的标准做法吗?也许我刚读过太多偏执的博客文章?
感谢您的支持。我目前没有使用护照。我只是为每位用户创建自己的api_token,如本博客文章中所述:https://gistlog.co/JacobBennett/090369fbab0b31130b51 您认为这对于小规模SPA来说是否合理?在你看来,它可以输出令牌到html页面,然后用'document.getElementById(“token”)''来获取它。 – Inigo
如果你的前端应用使用的是角度,最好的方法是使用角度内存储令牌一段时间的服务,任何时候你的应用需要通过api进行认证使用它,而不是在html页面内输出令牌对于基于api的应用程序是合理的,我也有类似的问题,总是用简单的方式来解决你的问题并不困难方式 – 2017-10-20 21:48:47
最初你会如何得到令牌?如果您在应用第一次加载以请求当前用户的令牌时进行初始api调用,那么我认为api调用本身仍然需要以某种方式进行验证?将令牌输出到html有什么安全问题?谢谢 – Inigo