我正在阅读Spotify Web API文档,重点关注授权指南。 他们为授权代码 OAuth2流提供了一些示例代码,但是有些东西对我来说似乎不太正确。我对OAuth协议的了解有限,所以我对此不确定。
事实是,他们进行调用以获取服务器端的访问和刷新令牌,但随后他们重定向到初始路由,将令牌作为URL参数传递,以允许从JS代码中使用。 这是node.js服务器的代码:
[POST call to the token end-point to get the tokens]
[...]
// we can also pass the token to the browser to make requests from there
res.redirect('/#' +
querystring.stringify({
access_token: access_token,
refresh_token: refresh_token
})
);
然后,它们在前端JS上使用这些令牌向API发出HTTP请求。他们甚至将令牌刷新作为AJAX调用。
我的问题是:这不是使用授权代码流的不好方法吗?我是否可以修改代码并将所有需要使用访问令牌的API调用迁移到后端,然后通过内部调用来获取接收到的信息到后端?
答案 0 :(得分:0)
这在很大程度上取决于您的应用程序。如果您的用户使用您的网站并信任他的浏览器,那么将令牌保留在浏览器上应该不会有问题。这样一来,在安全性上,将令牌另存为Cookie就是安全的做法,就像将该用户登录到您自己的允许用户使用您的api的登录机制一样。
迁移它以便客户端要求服务器执行操作意味着您需要做一些事情: