2017-01-06 10:02:36 -05:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using Microsoft.AspNet.Identity;
|
|
|
|
|
using Microsoft.AspNet.Identity.EntityFramework;
|
|
|
|
|
using Microsoft.Owin;
|
|
|
|
|
using Microsoft.Owin.Security.Cookies;
|
|
|
|
|
using Microsoft.Owin.Security.Google;
|
|
|
|
|
using Microsoft.Owin.Security.OAuth;
|
|
|
|
|
using Owin;
|
2017-04-02 04:11:35 -04:00
|
|
|
|
using securecall.Providers;
|
|
|
|
|
using securecall.Models;
|
2017-01-06 10:02:36 -05:00
|
|
|
|
|
2017-04-02 04:11:35 -04:00
|
|
|
|
namespace securecall
|
2017-01-06 10:02:36 -05:00
|
|
|
|
{
|
|
|
|
|
public partial class Startup
|
|
|
|
|
{
|
|
|
|
|
public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }
|
|
|
|
|
|
|
|
|
|
public static string PublicClientId { get; private set; }
|
|
|
|
|
|
|
|
|
|
// 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(ApplicationDbContext.Create);
|
|
|
|
|
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.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());
|
|
|
|
|
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
|
|
|
|
|
|
|
|
|
|
// Configure the application for OAuth based flow
|
|
|
|
|
PublicClientId = "self";
|
|
|
|
|
OAuthOptions = new OAuthAuthorizationServerOptions
|
|
|
|
|
{
|
|
|
|
|
TokenEndpointPath = new PathString("/Token"),
|
|
|
|
|
Provider = new ApplicationOAuthProvider(PublicClientId),
|
|
|
|
|
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
|
|
|
|
|
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
|
|
|
|
|
// In production mode set AllowInsecureHttp = false
|
|
|
|
|
AllowInsecureHttp = true
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Enable the application to use bearer tokens to authenticate users
|
|
|
|
|
app.UseOAuthBearerTokens(OAuthOptions);
|
|
|
|
|
|
|
|
|
|
// 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 = ""
|
|
|
|
|
//});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|