【问题标题】:How to change authentcated users to the Google Drive API如何将经过身份验证的用户更改为 Google Drive API
【发布时间】:2017-01-09 06:38:41
【问题描述】:

我已按照.NET Quickstart 教程从 Google Drive 中获取驱动器名称列表。

此代码运行良好。但是,我想知道是否可以再次强制进行身份验证(例如注销,但我认为谷歌不会这样称呼它)。

目前我需要等待同意超时才能选择另一个帐户。

(如果我是第一次启动应用程序或上一个会话已超时,则会提示 Google 同意页面,以便我可以选择或添加特定帐户进行身份验证。

我使用的是OAuth2,平台是.NET窗体应用程序。

【问题讨论】:

    标签: c# asp.net google-api google-oauth google-api-dotnet-client


    【解决方案1】:

    如果您发布所有代码,然后只链接您遵循的教程,这会有所帮助。

    Google API dotnet 客户端库的工作方式是将用户凭据存储在您计算机上的数据存储中。在以下代码部分中,“用户”表示用户凭据,如果您更改它,您可以强制它在用户之间交换。如果用户没有凭据,则会弹出并再次要求您进行身份验证。要完全了解文件数据存储的工作原理,我建议您阅读我的教程Google .net – FileDatastore demystified

    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
    

    在 Oauth 的世界中,确实没有注销这样的事情。从技术上讲,您可以访问用户数据,直到他们删除该访问权限或您的刷新令牌发生某些事情。您可以更改代码中的“用户”,以使其看起来用户已在您的网站上注销。唯一接近这一点的是Revoking 令牌,它基本上是在删除您对用户数据的访问权限。如果用户选择再次登录,他们将不得不再次验证您的应用程序。

    【讨论】:

    • 我没有复制代码的原因仅仅是因为它实际上与提供的链接相同......你的意思是如果我将字符串“user”更改为动态时间戳会在我的系统登录期间定义。它会起作用,以便在用户再次登录或注销后再次进行重新身份验证?谢谢
    • 从技术上讲是的。但是你最终会在你的机器上拥有很多数据存储。而且还有不止一个用户的潜力。
    • 我真的可以在登录/注销时使用时间戳方法实现重新认证。但是,你已经表达了你的担忧,你有更好的解决方案吗? (我认为大多数使用此 API 的人实际上确实需要一种方便的方法来实现重新身份验证,令人惊讶的是,没有太多的文章谈论)
    • 链接用户在您的网站上登录,他们的谷歌凭据是一个想法。我认为每次访问您的网站时都请求用户身份验证确实会惹恼您的用户。
    • 谢谢。有任何文章谈论您的第一句话的实施(链接用户在您的网站上登录,他们的谷歌凭据是一个想法)?我会进一步研究它,因为我同意你的第二句话(因为它在我做测试时让我很烦)
    猜你喜欢
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2015-08-17
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多