我正在使用Google中间件进行身份验证
以下是我的中间件设置
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
//AuthenticationType = AuthServerConstants.PrimaryAuthenticationType
AuthenticationMode = AuthenticationMode.Passive,
AuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
ExpireTimeSpan = TimeSpan.FromMinutes(30)
}).UseExternalSignInCookie(AuthServerConstants.ExternalAuthenticationType);
以下是我的谷歌中间件
var google = new GoogleOAuth2AuthenticationOptions
{
ClientId = AppSettingHelpers.GetValue<string>(AppSettingConstants.GoogleAppId),
ClientSecret = AppSettingHelpers.GetValue<string>(AppSettingConstants.GoogleAppSecret),
SignInAsAuthenticationType = signInAsType,
AuthenticationMode = AuthenticationMode.Passive
};
app.UseGoogleAuthentication(google);
我在google开发者控制台中启用了Google + API
我正在使用Google中间件版本2.1。我的Google身份验证仍会返回error=access_denied
任何人都可以让我知道在这个过程中可能错过了什么。
注意 我的外部身份验证cookie中间件尚未在浏览器中设置cookie。
答案 0 :(得分:1)
实际上,2014年4月20日,Open ID已被弃用,因此我们无法使用
app.UseGoogleAuthentication();
相反,我们必须使用Goolge Console创建项目。然后,您需要像使用&#39; ClientId&#39;那样更新您的代码。和&#39; ClientSecret&#39;。
您的代码应该是
app.UseGoogleAuthentication(AppSettingHelpers.GetValue<string>(AppSettingConstants.GoogleAppId), AppSettingHelpers.GetValue<string>(AppSettingConstants.GoogleAppSecret));
请注意:在Google控制台上创建项目时,提供重定向URI时应该小心。因为重定向URI可能看起来像
http://YourDomain/signin-google
LocalHost - https://YourLocalHost/signin-google
这适合我。
希望这有帮助。
答案 1 :(得分:0)
我最近遇到了同样的问题。就我而言,我必须在Google开发者控制台上启用Google+ API。您可以先在&#34;查找产品和服务&#34;搜索框然后点击&#34;启用&#34;按钮。