我创建了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?我怀疑拥有一个硬编码的秘密会带来很大的安全风险。
我应该使用哪种身份验证方法?