// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864 public void ConfigureAuth(IAppBuilder app) { // Configure the db context, user manager and signin manager to use a single instance per request app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create); app.CreatePerOwinContext <ApplicationSignInManager>(ApplicationSignInManager.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("/Home/Index"), Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or add an external login to your account. OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); ////Simple Twitch Sign-in //app.UseTwitchAuthentication(Config.ClientId, Config.ClientSecret); ////More complex Twitch Sign-in var opt = new TwitchAuthenticationOptions() { ClientId = Config.ClientId, ClientSecret = Config.ClientSecret, Provider = new TwitchAuthenticationProvider() { OnAuthenticated = async z => { // Getting the twitch users picture z.Identity.AddClaim(new Claim("Picture", z.User.GetValue("logo").ToString())); } // You should be able to access these claims with HttpContext.GetOwinContext().Authentication.GetExternalLoginInfoAsync().Claims in your Account Controller // Commonly used in the ExternalLoginCallback() in AccountController.cs /* * * if (user != null) * { * var claim = (await AuthenticationManager.GetExternalLoginInfoAsync()).ExternalIdentity.Claims.First( * a => a.Type == "Picture"); * user.Claims.Add(new IdentityUserClaim() { ClaimType = claim.Type, ClaimValue = claim.Value }); * await SignInAsync(user, isPersistent: false); * return RedirectToLocal(returnUrl); * } */ } }; app.UseTwitchAuthentication(opt); }
public static IApplicationBuilder UseTwitchAuthentication( [NotNull] this IApplicationBuilder app, [NotNull] Action <TwitchAuthenticationOptions> configuration) { var options = new TwitchAuthenticationOptions(); configuration(options); return(app.UseTwitchAuthentication(options)); }
/// <summary> /// Adds the <see cref="TwitchAuthenticationMiddleware"/> middleware to the specified /// <see cref="IApplicationBuilder"/>, which enables Twitch authentication capabilities. /// </summary> /// <param name="app">The <see cref="IApplicationBuilder"/> to add the middleware to.</param> /// <param name="options">A <see cref="TwitchAuthenticationOptions"/> that specifies options for the middleware.</param> /// <returns>A reference to this instance after the operation has completed.</returns> public static IApplicationBuilder UseTwitchAuthentication( [NotNull] this IApplicationBuilder app, [NotNull] TwitchAuthenticationOptions options) { if (app == null) { throw new ArgumentNullException(nameof(app)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } return(app.UseMiddleware <TwitchAuthenticationMiddleware>(Options.Create(options))); }
/// <summary> /// Adds the <see cref="TwitchAuthenticationMiddleware"/> middleware to the specified /// <see cref="IApplicationBuilder"/>, which enables Twitch authentication capabilities. /// </summary> /// <param name="app">The <see cref="IApplicationBuilder"/> to add the middleware to.</param> /// <param name="configuration">An action delegate to configure the provided <see cref="TwitchAuthenticationOptions"/>.</param> /// <returns>A reference to this instance after the operation has completed.</returns> public static IApplicationBuilder UseTwitchAuthentication( [NotNull] this IApplicationBuilder app, [NotNull] Action <TwitchAuthenticationOptions> configuration) { if (app == null) { throw new ArgumentNullException(nameof(app)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var options = new TwitchAuthenticationOptions(); configuration(options); return(app.UseMiddleware <TwitchAuthenticationMiddleware>(Options.Create(options))); }
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864 public void ConfigureAuth(IAppBuilder app) { // Configure the db context, user manager and signin manager to use a single instance per request app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create); app.CreatePerOwinContext <ApplicationSignInManager>(ApplicationSignInManager.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("/Account/Login"), Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or add an external login to your account. OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process. app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); // Enables the application to remember the second login verification factor such as phone or email. // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from. // This is similar to the RememberMe option when you log in. app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); // 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: ""); var googleOptions = new GoogleOAuth2AuthenticationOptions() { ClientId = System.Configuration.ConfigurationManager.AppSettings["googleId"], ClientSecret = System.Configuration.ConfigurationManager.AppSettings["googleSecret"], Provider = new GoogleOAuth2AuthenticationProvider() { OnAuthenticated = (context) => { var pictureUrl = context.User["image"].Value <string>("url"); context.Identity.AddClaim(new Claim("googlePicture", pictureUrl)); context.Identity.AddClaim(new Claim("googleAccess", context.AccessToken)); return(Task.FromResult(0)); } } }; googleOptions.Scope.Add("openid"); googleOptions.Scope.Add("profile"); googleOptions.Scope.Add("email"); googleOptions.Scope.Add("https://www.googleapis.com/auth/youtube.readonly"); googleOptions.Scope.Add("https://www.googleapis.com/auth/youtube"); googleOptions.Scope.Add("https://www.googleapis.com/auth/youtube.force-ssl"); app.UseGoogleAuthentication(googleOptions); var options = new TwitchAuthenticationOptions { ClientId = System.Configuration.ConfigurationManager.AppSettings["twitchId"], ClientSecret = System.Configuration.ConfigurationManager.AppSettings["twitchSecret"], Provider = new TwitchAuthenticationProvider { OnAuthenticated = (context) => { context.Identity.AddClaim(new Claim("twitchAccess", context.AccessToken)); return(Task.FromResult(0)); } } }; app.UseTwitchAuthentication(options); }
public static IApplicationBuilder UseTwitchAuthentication( [NotNull] this IApplicationBuilder app, [NotNull] TwitchAuthenticationOptions options) { return(app.UseMiddleware <TwitchAuthenticationMiddleware>(options)); }
// For more information on configuring authentication, please visit https://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(BellumGensDbContext.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 app.UseCookieAuthentication(new CookieAuthenticationOptions() { ExpireTimeSpan = TimeSpan.FromDays(30), CookieSameSite = SameSiteMode.None, CookieSecure = CookieSecureOption.SameAsRequest }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); // Configure the application for OAuth based flow PublicClientId = "bellum-gens-api"; OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString("/Token"), Provider = new ApplicationOAuthProvider(PublicClientId), AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), AllowInsecureHttp = allowInsecureHttp }; // Enable the application to use bearer tokens to authenticate users app.UseOAuthBearerTokens(OAuthOptions); app.UseSteamAuthentication(AppInfo.Config.steamApiKey); var battleNetAuthOptions = new BattleNetAuthenticationOptions() { ClientId = AppInfo.Config.battleNetClientId, ClientSecret = AppInfo.Config.battleNetClientSecret, Region = Region.Europe }; battleNetAuthOptions.Scope.Clear(); battleNetAuthOptions.Scope.Add("sc2.profile"); // battleNetAuthOptions.CallbackPath = new PathString("/signin-battlenet"); app.UseBattleNetAuthentication(battleNetAuthOptions); var twitchAuthOptions = new TwitchAuthenticationOptions() { ClientId = AppInfo.Config.twitchClientId, ClientSecret = AppInfo.Config.twitchSecret }; app.UseTwitchAuthentication(twitchAuthOptions); // 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: ""); //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() //{ // ClientId = "", // ClientSecret = "" //}); }