OAuth :删除第三方访问
OAuth : remove third party access
我是一名学生,正在开发一款允许用户将视频上传到他们的 YouTube 频道的网络应用程序。它运行良好,但我希望用户能够根据需要撤销该访问权限。
目前,我只是从数据库中删除了用户的访问令牌,但该应用程序仍显示在用户的Google“有权访问您帐户的应用程序”页面中...有什么办法吗撤消该访问权限而无需用户手动转到该页面并单击“删除访问权限”按钮?
Here is an example of manual access removal。我只是想在我的网络应用程序中有一个这样的“删除访问”按钮,它会做同样的事情。有办法吗?
感谢您的帮助!
获取用户的访问令牌,然后向撤销端点发送请求。它将删除用户对您应用的访问权限。
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \
https://oauth2.googleapis.com/revoke?token={token}
假设您正在使用 Google api .net 客户端库,应该已经有一个撤销方法
UserCredential cred = await GoogleWebAuthorizationBroker.AuthorizeAsync(
Helper.GetClientSecretStream(), new string[] { "email" },
"user", default, new NullDataStore());
Assert.NotNull(cred);
var accessToken = await cred.GetAccessTokenForRequestAsync();
using (var f = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecretsStream = Helper.GetClientSecretStream()
}))
{
// Succeeds if no exception is thrown.
await f.RevokeTokenAsync("a-user", accessToken, default);
// Cannot verify revocation, as it takes in indeterminate duration to propagate.
}
我是一名学生,正在开发一款允许用户将视频上传到他们的 YouTube 频道的网络应用程序。它运行良好,但我希望用户能够根据需要撤销该访问权限。
目前,我只是从数据库中删除了用户的访问令牌,但该应用程序仍显示在用户的Google“有权访问您帐户的应用程序”页面中...有什么办法吗撤消该访问权限而无需用户手动转到该页面并单击“删除访问权限”按钮?
Here is an example of manual access removal。我只是想在我的网络应用程序中有一个这样的“删除访问”按钮,它会做同样的事情。有办法吗?
感谢您的帮助!
获取用户的访问令牌,然后向撤销端点发送请求。它将删除用户对您应用的访问权限。
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \
https://oauth2.googleapis.com/revoke?token={token}
假设您正在使用 Google api .net 客户端库,应该已经有一个撤销方法
UserCredential cred = await GoogleWebAuthorizationBroker.AuthorizeAsync(
Helper.GetClientSecretStream(), new string[] { "email" },
"user", default, new NullDataStore());
Assert.NotNull(cred);
var accessToken = await cred.GetAccessTokenForRequestAsync();
using (var f = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecretsStream = Helper.GetClientSecretStream()
}))
{
// Succeeds if no exception is thrown.
await f.RevokeTokenAsync("a-user", accessToken, default);
// Cannot verify revocation, as it takes in indeterminate duration to propagate.
}