我一直试图从Dropbox获取客户端授权令牌,我遵循了here和here的说明,但仍未获得授权。如上面提供的链接所述,我想向端点发出这样的请求:https//www.dropbox.com/oauth2/authorize?response_type=...&client_id=...&redirect_uri=...
,我这样做了,但仍然没有使用授权码(基于所选的授权流)重定向回去,然后使用此call交换承载访问令牌。然后,该承载访问令牌应被用于所有后续调用。
我在这里做错了什么?也是我可以提供永久身份验证而不必为API的非常请求而调用授权URL的方式吗?我为此被困住了。请帮助。
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();
}
The /oauth2/authorize endpoint是一个网页,您应将最终用户引导至该网页,而不是要通过编程方式访问的API端点,因为您试图通过fetch
调用在此处进行操作。例如,您可以通过将window.location
设置为/ oauth2 / authorize URL来重定向用户。
由于您正在使用'令牌'流,因此您将在重定向URI的URL片段上获得访问令牌。您可以使用window.location.hash
将其读回。
一旦有了访问令牌,就可以将其用于以后的呼叫,而无需再次进行授权流程。