gpt4 book ai didi

javascript - 使用 Graph OAuth v2.0 刷新 token

转载 作者:太空狗 更新时间:2023-10-29 19:26:17 26 4
gpt4 key购买 nike

我正在通过 Microsoft Graph 请求用户的信息。我使用 2.0 端点。

这是我的登录函数:

login() {
hello('msft').login({scope: Configs.scope}).then(
() => {
this.zone.run(() => {
this.meService.getMe().subscribe(data => {
localStorage.setItem('username', data.mail);
localStorage.setItem('jobtitle', data.jobTitle);
localStorage.setItem('loggedin', 'yes');
},
err => {
console.log(err);
},
() => {
this.router.navigate(['/home']);
});
});
},
e => console.error(e.error.message)
);
}

这是我的初始化函数:

initAuth() {
this.redirect_uri = window.location.href;
hello.init({
msft: {
id: Configs.appId,
oauth: {
version: 2,
auth: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize'
},
scope_delim: ' ',
form: false
},
},
{redirect_uri: window.location.href}
);
}

我在这里获取访问 token :

getAccessToken() {
const msft = hello('msft').getAuthResponse();
console.log(msft);
const accessToken = msft.access_token;
return accessToken;
}

我得到一个访问 token ,通过它我可以登录。但是,我没有得到刷新 token 。根据我的阅读,您可以通过/token 端点获得刷新和访问 token 。据我所知,我只使用/authorize 端点并且它有效?

这带来了一个问题。我无法刷新我的 token !

响应看起来像这样:

access_token:
"This is private, but it's a very long string"
client_id:"e6c987d2-8bdc-4f1a-bafc-04ba3d51f340"
display:"popup"
expires:1524649746.548
expires_in:3599
network:"msft"
redirect_uri:"http://localhost:4200/"
scope:"basic,User.Read"
session_state:"89a68bd2-5ae5-4df2-88d0-d28718fd10bc"
state:""
token_type:"Bearer"

如有任何帮助,我们将不胜感激!

最佳答案

由于您使用的是 Implicit grant ,您不能使用刷新 token 。它们仅支持使用 Authorization Code grant .

为了使用刷新 token ,您需要切换到授权代码授予并实现服务器端代码以将授权代码处理为访问 token 。您还需要请求触发 refresh_token 生成的范围 offline_access

关于javascript - 使用 Graph OAuth v2.0 刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50017915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com