Недопустимое или отсутствующее состояние при использовании oauth Google .Чистое ядро
я сталкиваюсь с этой проблемой и пытаюсь с последних многих дней, я использую .net core 3.0 с google auth я настроил evertying и прекрасно работаю до тех пор, пока метод обратного вызова (return uri), где я получаю эту ошибку недействительным или отсутствующим состоянием...
Что я уже пробовал:
public IActionResult ExternalLogin(string provider, string returnUrl) { // provider = "Google"; //Issue a challenge to external login middleware to trigger sign in process //return new ChallengeResult(provider); //var RedirectUri = "https://localhost:5001/Account/Externallogincallback"; var RedirectUri = Url.Action("Externallogincallback", "Account", new { ReturnUri = returnUrl },"https"); string userId = null; var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, RedirectUri,userId); //options.StateDataFormat.Protect(properties) return new ChallengeResult(provider, properties); }
автозагрузки.в CS
services.AddSession(); services.AddAuthentication() .AddGoogle(options => { IConfigurationSection googleAuthNSection = Configuration.GetSection("Authentication:Google"); options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme; options.ClientId = "968526748268-4qo60g0g10bnvm1i0l8hllo7dcdg4l8j.apps.googleusercontent.com"; options.ClientSecret = "1B8awSbGR5jboG9oG4OmWrat"; options.ClaimsIssuer = "https://www.googleapis.com/oauth2/v1/certs"; //options.CallbackPath = "https://localhost:5001/Account/Externallogincallback"; options.CallbackPath = new PathString("/Account/Externallogincallback"); options.AuthorizationEndpoint = "https://accounts.google.com/o/oauth2/auth"; options.TokenEndpoint = "https://oauth2.googleapis.com/token"; //options.UserInformationEndpoint = "https://api.googleusercontent.com/user"; options.UserInformationEndpoint = "https://www.googleapis.com/oauth2/v2/userinfo"; options.SaveTokens = true; options.Scope.Add("https://www.googleapis.com/auth/user.birthday.read"); options.ClaimActions.MapJsonKey("urn:google:picture", "picture", "url"); options.ClaimActions.MapJsonKey("urn:google:locale", "locale", "string"); options.SaveTokens = true;