【发布时间】:2022-02-02 23:27:09
【问题描述】:
我正在构建一个使用纯 PHP(无 PHP 框架)作为后端的 Vue 应用程序。对于我的 authentication 系统,我认为使用 jwt(JSON Web Tokens) 可以帮助我。于是我在网上搜索,找到了this article和this one,帮助我在jwt的帮助下构建了一个登录注册系统。在我的应用程序的前端(Vue)和后端(PHP)中实现这些文章没有问题。目前我可以在用户注册到站点时发送一个请求,并在firebase php-jwt library 的帮助下发回一个 jwt 到前端。
但主要问题来了。我从 Vue 生态系统中了解到,我们使用 Vuex 的原因之一是在我们的应用程序中全局存储一些数据(状态),而无需调用服务器,我们可以在任何地方(或任何路线)使用它们我们的 Vue 应用程序。
通过阅读那两篇文章的one,我注意到 jwt 最终存储在 Vuex 中,当用户想要查看授权页面(需要授权的页面)时,Vue 应用程序检查 Vuex 以查看令牌是否存在,如果存在,应用程序允许用户查看该页面。
通过阅读second one,我注意到当用户向网站后端发送请求时,jwt 很有用。在这种情况下,jwt 被解码并且如果它是有效的(例如到期日期是 OK 或 ...),用户可以访问授权页面。
根据上面的描述,在我的 Vue 应用程序中使用 jwt 有什么好处?如果我只存储用户的 id 和 user-name,它可以为我完成相同的任务。换句话说,如果我想清楚地问我的问题,问题是 什么时候 我想使用 Vuex 而不是每次都向服务器发送请求,我不需要也不能从中受益jwt(我是对的吗?)。同样当我想使用 jwt 时,我无法从 Vuex 中受益。因为我必须每次都发送请求来确定 jwt 是否有效,然后再决定用户。
如果我理解正确并且同时使用 jwt 和 Vuex 存在矛盾,为什么有这么多教程谈到 authentication 一个使用 jwt 的 Vue 应用程序?另外,如果我对 jwt 的理解是正确的,这是否意味着当 jwt 过期时,我必须要求用户一次又一次地登录(无论使用或不使用 Vuex)?
谁能帮助我更好地理解这个问题,以便更好地决定我的身份验证系统?
【问题讨论】:
标签: php vue.js authentication jwt vuex