首页 > 解决方案 > Vuejs + Laravel API:可以在 Vue SPA 中存储秘密进行身份验证吗?

问题描述

我创建了 Vue SPA,它使用 Laravel API 进行服务器端操作,每个项目都位于其单独的文件夹中。

现在,这两个项目都已启动并正在运行,并且它们能够相互通信。我可以使用 Axios 从 Vue 应用程序向 Laravel API 中间件路由发送 HTTP 请求。

我将客户端密码硬编码到我的 Vue 应用程序中,因此一切正常。我可以提交登录凭据并从服务器接收访问令牌,然后将其存储在我的 localStorage 中。

以下是来自 Vue 应用程序的请求方法

    handleLoginForm () {
        const postData = {
            grant_type: 'password',
            client_id: '2',
            client_secret: 'MySecretFromTheDataBase',
            username: this.login.email,
            password: this.login.password
        }
        axios.post('oauth/token', postData) 
            .then(response => {
                // some logic
            })
    }

问题是,我必须如何从客户端应用程序中处理 client_id 和 client_secret?我怀疑拥有硬编码的秘密会带来很大的安全风险。

我应该使用哪种身份验证方法?

标签: laraveloauth-2.0vuejs2axioslaravel-passport

解决方案


推荐阅读