我已经拿到了持有者令牌,现在我该如何理解它,然后如何使用它



我的总体目标是使用API填充google站点页面,其中包含当前学习空间的预订。该服务使用oath2和Authorization: Bearer ACCESSTOKEN。我嵌入Ajax - jQuery在谷歌网站做到这一点。

到目前为止,我可以使用授权端点获取令牌并将其发送到console.log。但是,如何将其存储到一个变量中,以便与下一个请求一起发送到实际的数据端点呢?很明显,我对这个完全陌生,我被困住了。

下面是有效的

$.ajax
({
type: "POST",
url: "my.url/oauth/token",
data: 
{client_id:"715",
client_secret:"secret",
grant_type:"client_credentials"}, 
success: function(data){

console.log(data)},
});

控制台显示如下数据:""access_token":"78098453jkdg0ehgjf09etuca117bed9430740a08ac2b3e97c3d0","expires_in":3600,"token_type":"Bearer","scope":"rm_r sp_r"}"

对于我的生活,我不知道如何把它放入一个变量而不是控制台。我试过声明一个变量并存储它,我试过sessionStorage.setItem。我的下一步是(我认为)将该响应存储到一个变量ACCESSTOKEN中,然后在我的下一个请求中使用它。

$.ajax
({
type: "GET",
url: "myurl.com/endpoint",
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Bearer ACCESSTOKEN');
},
success: function(data) {console.log(data)
},
});

此时,我需要弄清楚如何再次从控制台中取出它,并让它将数据输出到表或其他东西中。

任何和所有的帮助将非常感激!kmk

试着像这样解析它:

let accessToken;
$.ajax({
type: 'GET',
url: 'myurl.com/endpoint',
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Bearer ACCESSTOKEN');
},
success: function(data) {
const jsonRegexp = /(")w+1:s?([wd]+|1[wsd]+1)/g;
const jsonPares = data.match(jsonRegexp);
const parsedJSON = {};
if (jsonPares?.length) {
for (let i = 0; i < jsonPares.length; i++) {
jsonPares[i] = jsonPares[i].replace(/&quot;/g, '');
const splitted = jsonPares[i].split(/:s?/g);
if (splitted?.length === 2) {
parsedJSON[splitted[0]] = splitted[1];
}
}
}
accessToken = parsedJSON?.['access_token'];
},
});

相关内容

最新更新