protected override void ProcessCore(IdentityProvidersArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            IdentityProvider = this.GetIdentityProvider();

            var provider = new GoogleOAuth2AuthenticationProvider
            {
                OnAuthenticated = (context) =>
                {
                    context.Identity.ApplyClaimsTransformations(new Owin.Authentication.Services.TransformationContext(this.FederatedAuthenticationConfiguration, IdentityProvider));
                    return(Task.CompletedTask);
                }
            };

            GoogleOAuth2AuthenticationOptions googleOptions = new GoogleOAuth2AuthenticationOptions
            {
                ClientId           = Configuration.Settings.GetSetting("FedAuth.Google.ClientId"),
                ClientSecret       = Configuration.Settings.GetSetting("FedAuth.Google.ClientSecret"),
                Provider           = provider,
                AuthenticationType = IdentityProvider.Name,
                CallbackPath       = new PathString("/signin-google")
            };

            args.App.UseGoogleAuthentication(googleOptions);
        }
Exemplo n.º 2
0
        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            // Configure the db context and user manager to use a single instance per request
            app.CreatePerOwinContext(DbContext.Create);
            app.CreatePerOwinContext <IUnitOfWork>(UnitOfWorkOle.Create);
            app.CreatePerOwinContext <App_Start.OwinSettings>(App_Start.OwinSettings.Create);
            app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext <ApplicationRoleManager>(ApplicationRoleManager.Create);

            // Enable the application to use a cookie to store information for the signed in user
            // and to use a cookie to temporarily store information about a user logging in with a third party login provider
            // Configure the sign in cookie
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath          = new PathString("/Login"),
                Provider           = new CookieAuthenticationProvider
                {
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <ApplicationUserManager, User, Guid>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentityCallback: (manager, user) => manager.GenerateUserIdentityAsync(user),
                        getUserIdCallback: (id) => (new Guid(id.GetUserId())))
                }
            });

            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Uncomment the following lines to enable logging in with third party login providers
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            //app.UseTwitterAuthentication(
            //   consumerKey: "",
            //   consumerSecret: "");

            //app.UseFacebookAuthentication(
            //   appId: "",
            //   appSecret: "");

            GoogleOAuth2AuthenticationOptions googleOpt = new GoogleOAuth2AuthenticationOptions();

            googleOpt.ClientId     = "928365693026-r7eoreit3e0fmnknh02ki8ivcf63qdj6.apps.googleusercontent.com";
            googleOpt.ClientSecret = "zKBFHJptabxBR3-0YbRELa2x";
            GoogleOAuth2AuthenticationProvider googleProv = new GoogleOAuth2AuthenticationProvider();

            googleProv.OnAuthenticated = async context =>
            {
                string googleEmailAddress = context.Email;
                string googleFirstName    = context.GivenName;
                string googleLastName     = context.FamilyName;
            };
            googleOpt.Provider = googleProv;
            app.UseGoogleAuthentication(googleOpt);
        }
        protected override void ProcessCore(IdentityProvidersArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            IdentityProvider identityProvider = this.GetIdentityProvider();

            var clientId     = Sitecore.Configuration.Settings.GetSetting("FedAuth.Google.ClientId");
            var clientSecret = Sitecore.Configuration.Settings.GetSetting("FedAuth.Google.ClientSecret");
            var domain       = Sitecore.Configuration.Settings.GetSetting("FedAuth.Google.Domain");

            var provider = new GoogleOAuth2AuthenticationProvider
            {
                OnAuthenticated = (context) =>
                {
                    // transform all claims
                    ClaimsIdentity identity = context.Identity;
                    foreach (Transformation current in identityProvider.Transformations)
                    {
                        current.Transform(identity, new TransformationContext(FederatedAuthenticationConfiguration, identityProvider));
                    }
                    return(System.Threading.Tasks.Task.FromResult(0));
                },

                OnReturnEndpoint = (context) =>
                {
                    // xsrf validation
                    if (context.Request.Query["state"] != null && context.Request.Query["state"].Contains("xsrf="))
                    {
                        var state = HttpUtility.ParseQueryString(context.Request.Query["state"]);
                        //todo: do something with it.
                        //change response status to 401 in case of forgery
                    }

                    return(System.Threading.Tasks.Task.FromResult(0));
                }
            };

            args.App.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            {
                ClientId     = clientId,
                ClientSecret = clientSecret,
                Provider     = provider
            });
        }
        protected override void ProcessCore(IdentityProvidersArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            IdentityProvider identityProvider   = this.GetIdentityProvider();
            string           authenticationType = this.GetAuthenticationType();

            //Google
            var googleProvider = new GoogleOAuth2AuthenticationProvider()
            {
                OnAuthenticated = (context) =>
                {
                    // transform all claims
                    ClaimsIdentity identity = context.Identity;
                    foreach (Transformation current in identityProvider.Transformations)
                    {
                        current.Transform(identity, new TransformationContext(FederatedAuthenticationConfiguration, identityProvider));
                    }
                    return(System.Threading.Tasks.Task.FromResult(0));
                },

                OnReturnEndpoint = (context) =>
                {
                    if (context.Request.Query["state"] != null)
                    {
                        var state = HttpUtility.ParseQueryString(context.Request.Query["state"]);
                        //Todo : need to do something with it
                    }

                    return(System.Threading.Tasks.Task.FromResult(0));
                }
            };

            GoogleOAuth2AuthenticationOptions googleOptions = new GoogleOAuth2AuthenticationOptions();

            googleOptions.ClientId     = "839319546746-bpijo8mlsi4isld86jeah76974u1n39i.apps.googleusercontent.com";
            googleOptions.ClientSecret = "RrqhHCb5hf5_0DYrTOsLnP-F";
            googleOptions.Provider     = googleProvider;
            googleOptions.CallbackPath = new PathString("/signin-google");

            args.App.UseGoogleAuthentication(googleOptions);
        }
        protected override void ProcessCore(IdentityProvidersArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            IdentityProvider identityProvider   = this.GetIdentityProvider();
            string           authenticationType = this.GetAuthenticationType();

            //Google
            var googleProvider = new GoogleOAuth2AuthenticationProvider()
            {
                OnAuthenticated = (context) =>
                {
                    // transform all claims
                    ClaimsIdentity identity = context.Identity;
                    foreach (Transformation current in identityProvider.Transformations)
                    {
                        current.Transform(identity, new TransformationContext(FederatedAuthenticationConfiguration, identityProvider));
                    }
                    return(System.Threading.Tasks.Task.FromResult(0));
                },

                OnReturnEndpoint = (context) =>
                {
                    if (context.Request.Query["state"] != null)
                    {
                        var state = HttpUtility.ParseQueryString(context.Request.Query["state"]);
                        //todo: do something with it.
                    }

                    return(System.Threading.Tasks.Task.FromResult(0));
                }
            };

            GoogleOAuth2AuthenticationOptions googleOptions = new GoogleOAuth2AuthenticationOptions();

            googleOptions.ClientId     = "56239192454-rab6l2919d24umtvv2lim3te6h8rgo77.apps.googleusercontent.com";
            googleOptions.ClientSecret = "38AbD8PNy8bw8oaBvhHDyH8W";
            googleOptions.Provider     = googleProvider;
            googleOptions.CallbackPath = new PathString("/signin-google");

            args.App.UseGoogleAuthentication(googleOptions);
        }