MVC 5 C#(.Net Framework)中的 Google 外部登录

问题描述 投票:0回答:3

我正在尝试使用 Visual Studio 2017(MVC 5 .Net Framework)为我的一个 Web 应用程序添加 Google 外部登录功能。通过遵循之前给出的确切步骤,我无法使其工作。并且使用google帐户(之前在测试用户中分配)登录后,它总是重定向到登录页面。在调试模式下,所有变量和属性均为空。

此外,关于我的问题,我已经尝试了以下每个步骤(基于 StackOverflow 之前的解决方案:-

  1. 将所有相关 NuGet 包更新到最新版本。

  2. 根据我的项目配置授权Javascript和重定向URL (HTTP://localhost:{端口号})

  3. 应用程序处于测试模式(已添加测试用户)。

  4. Google认证的代码在(App_Start->Startup.Auth.cs) 看起来像这样:

    app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);

    app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            {
    
                ClientId = "My Client ID Given in Google Developer Console",
    
                ClientSecret = "My Client Secret Given in Google Developer Console"
            });
    

不知道最近有没有人遇到同样的问题。我在 Asp.Net Core 项目上对此进行了测试,效果很好。但它在 MVC 5 框架中不起作用。 有的话请指教。

最好

c# asp.net-mvc-5 null frameworks google-authentication
3个回答
1
投票

问题似乎与 HTTP 相关,因此您需要改用 HTTPs。请按照以下步骤操作:-

  • 右键单击您的项目名称->属性。

  • 在“属性”窗口中启用 SSL。

  • 复制整个 SSL URL(端口号与 HTTP 不同)。

  • 将新的 SSL URL 粘贴到 Google 开发者控制台中的授权重定向 URL。例如

  • 当您在 Visual Studio 中运行应用程序时。在尝试通过 google 唱歌之前,不要忘记将 HTTP 更改为 HTTPs 并更改端口号。

  • 完整的授权重定向URL如下:

授权重定向 URL : https://localhost:{新端口号}/signin-google


0
投票

我想说的是,不要尝试,因为当你发布到你的网站时,它不会起作用。 .net 的 Google 登录仅适用于本地主机。相反,请使用 100% 浏览器端的 onetap。我能够通过使用此处找到的代码在一天内找出onetap:https://googleonetap.developer.li/


-1
投票

从 Google API API 管理器中,访问“凭据”选项卡以获取客户端 ID。下载并保存包含应用程序机密的 JSON 文件。将 ClientId 和 ClientSecret 复制并粘贴到 App_Start 文件夹中 Startup.Auth.cs 文件中的 UseGoogleAuthentication 方法中。如果 ClientId 和 ClientSecret 值无效,则不起作用。 例如,

app.UseGoogleAuthentication(
         clientId: "001-010.apps.googleusercontent.com",
         clientSecret: "01000100000");
© www.soinside.com 2019 - 2024. All rights reserved.