通过owin进行Google身份验证可以拒绝访问

时间:2014-09-23 14:44:47

标签: asp.net-mvc-5 owin google-authentication

我正在使用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

enter image description here

我正在使用Google中间件版本2.1。我的Google身份验证仍会返回error=access_denied

任何人都可以让我知道在这个过程中可能错过了什么。

注意  我的外部身份验证cookie中间件尚未在浏览器中设置cookie。

2 个答案:

答案 0 :(得分:1)

实际上,2014年4月20日,Open ID已被弃用,因此我们无法使用

app.UseGoogleAuthentication();

相反,我们必须使用Goolge Console创建项目。然后,您需要像使用&#39; ClientId&#39;那样更新您的代码。和&#39; ClientSecret&#39;。

您的代码应该是

app.UseGoogleAuthentication(AppSettingHelpers.GetValue<string>(AppSettingConstan‌​ts.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;按钮。