如何接收保管箱授权代码?



我在尝试从 Dropbox 获取客户端授权令牌时遇到了困难,我已经按照此处和此处的说明进行操作,但仍然没有得到授权。如上面提供的链接中所述,我假设向端点发出请求,如下所示:https//www.dropbox.com/oauth2/authorize?response_type=...&client_id=...&redirect_uri=...,我做到了,但仍然没有使用授权代码(基于所选的授权流(重定向回,然后使用此调用交换持有者访问令牌。然后,持有者访问令牌应该用于所有后续调用。

我在这里做错了什么?此外,我是否可以提供永久身份验证,而无需调用授权 URL 来请求 API ?我一直为此陷入困境。请帮忙。

源代码

if (process.env) {
const appKey = process.env.REACT_APP_KYUNISTUDIO_APP_KEY;
const appSecretKey = process.env.REACT_APP_KYUNISTUDIO_SECRET_KEY;
const authToken = () => {
const headers = {'Content-Type': 'application/json;charset=utf-8'};
fetch(`https//www.dropbox.com/oauth2/authorize?response_type=token&client_id=<${appKey}>&redirect_uri=http://localhost:3000`, {
method: 'GET',
headers:headers,
})
.then(res => res.json)
.then(data => console.log(data))
.catch(err => console.log(err))
}
authToken();
}

/oauth2/authorize 终结点是应将最终用户定向到的网页,而不是以编程方式访问的 API 终结点,就像您在此处尝试对fetch调用执行的操作一样。例如,您可以通过将用户window.location设置为/oauth2/authorize URL 来将用户重定向到那里。

由于使用的是"令牌"流,因此将在重定向 URI 上的 URL 片段上取回访问令牌。您可以使用window.location.hash将其读回。

获得访问令牌后,可以将其用于将来的调用,而无需再次通过授权流。

相关内容

最新更新