Вход в систему через Google с помощью Razor Pages не удается при обратном вызове - PullRequest
0 голосов
/ 28 февраля 2019

Следите за последними изменениями .NET Core 2.2 и пытаетесь использовать Razor Pages для входа в учетную запись Google.

Чтобы достичь этого, я следовал этому пошаговому руководству:

Аутентификация Facebook, Google и внешнего провайдера в ASP.NET Core

Итак, я внимательно прочитал и следовал всем шагам и даже следовал инструкциям Google, связаннымсо страницы.

Итак, теперь я вижу экран выбора учетной записи Google, но, похоже, он не может вернуться, когда я выбрал свою учетную запись.

ConfigureServices

public void ConfigureServices(IServiceCollection services) {
    services.Configure<CookiePolicyOptions>(options => {
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });

    services.ConfigureExternalCookie(o => {
        o.Cookie.SameSite = SameSiteMode.None;
    });

    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection")));
    services.AddDefaultIdentity<IdentityUser>()
        .AddDefaultUI(UIFramework.Bootstrap4)
        .AddEntityFrameworkStores<ApplicationDbContext>();
    services.AddAuthentication()
        .AddGoogle(o => {
            o.AuthorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth";
            o.CallbackPath = new PathString("/signin-google");
            o.ClaimsIssuer = "google";
            o.ClientId = Configuration["Authentication:Google:ClientId"];
            o.ClientSecret = Configuration["Authentication:Google:ClientSecret"];
            o.SaveTokens = true;
            o.Scope.Add("openid");
            o.Scope.Add("profile");
            o.Scope.Add("email");
            o.SignInScheme = IdentityConstants.ExternalScheme;
            o.TokenEndpoint = "https://oauth2.googleapis.com/token";
            o.UserInformationEndpoint = "https://openidconnect.googleapis.com/v1/userinfo";
        });


services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

Настройка

public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
    ...
    app.UseAuthentication();
    app.UseMvc();
}

_LoginPartial

_LoginPartial

Мое приложение зарегистрировано в Google через консоль API Google.

Я могу получить следующее:

Google choose account

Икогда я выбираю свою учетную запись, приложение не может войти в систему при обратном вызове.

Error loading

И да, мой redirect_uri указанПравильно, иначе это не позволило бы мне выбрать свою учетную запись.

И я новичок в OAuth2 и OpenId Connect.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...