【问题标题】:Google's user token and authorization code in an ASP.NET webapplicationASP.NET Web 应用程序中的 Google 用户令牌和授权代码
【发布时间】:2016-04-09 21:00:36
【问题描述】:

您好,我正在尝试制作一个 Web 应用程序,即使用户没有连接到网站,也可以阅读他们的电子邮件。我按照Google Sign-In for Websites 中的步骤操作并制作了一个 javascript 登录页面,最终给了我一个授权码,在第 7 步中,他们告诉您通过将授权码发送到服务器来交换访问令牌的授权码xmlhttp请求。我的问题是我不知道如何将代码发送到服务器端,即使我不知道如何使用它来刷新令牌或在 asp 中获取用户数据,我搜索了如何使用 DotNetOpenAuth 但我找不到帮助我解决问题的教程。

【问题讨论】:

    标签: javascript asp.net google-api xmlhttprequest google-api-dotnet-client


    【解决方案1】:

    您好,您可以这样做:

    IAuthorizationCodeFlow flow = 
    new GoogleAuthorizationCodeFlow(newGoogleAuthorizationCodeFlow.Initializer
            ClientSecrets = new ClientSecrets
    {
        ClientId = "yourClientId",
        ClientSecret = "yourClientSecret"
    
    });
    TokenResponse response = flow.ExchangeCodeForTokenAsync("", "authorization_code_you_generated_in_client", "postmessage", CancellationToken.None).Result;
    

    这应该会给你访问令牌。 仅当您在 javascript 请求中指定 "access_type" : "offline" 时,您才会获得刷新令牌。 您可能还想使用 "approval_prompt" : "force" 再次获取 refresh_token。

    【讨论】:

    • 谢谢,毕竟我使用了 GoogleWebAuthorizationBroker,但我在离线访问时遇到了困难,你知道吗?
    • 根据我的经验,GoogleWebAuthorizationBroker 更适合桌面应用程序,在您的场景中我会使用 GoogleAuthorizationCodeFlow。你是否在客户端指定了 access_type 和approval_prompt,就像我提到的那样来获取refresh_token?
    猜你喜欢
    • 1970-01-01
    • 2021-03-25
    • 2020-08-28
    • 2022-11-27
    • 2012-05-06
    • 2022-10-25
    • 2019-08-18
    • 1970-01-01
    • 2013-10-07
    相关资源
    最近更新 更多