Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public partial class Startup
- {
- // O armazenamento de dados que usamos para salvar o token de acesso do usuário depois de fazer login.
- private IDataStore dataStore = new FileDataStore(GoogleWebAuthorizationBroker.Folder);
- public void ConfigureAuth(IAppBuilder app)
- {
- // Configure o contexto do banco de dados, o gerenciador de usuários e o gerenciador de login para usar uma única instância por solicitação
- app.CreatePerOwinContext(() => DependencyResolver.Current.GetService<ApplicationUserManager>());
- // Habilitar o aplicativo para usar um cookie para armazenar informações para o usuário conectado e usar um cookie para armazenar temporariamente informações sobre um usuário efetuando login com um provedor de login de terceiros. Configurar o cookie de login
- app.UseCookieAuthentication(new CookieAuthenticationOptions
- {
- AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
- LoginPath = new PathString("/seguro/acesso"),
- Provider = new CookieAuthenticationProvider
- {
- // Permite que o aplicativo valide o carimbo de segurança quando o usuário faz o login. Esse é um recurso de segurança que é usado quando você altera uma senha ou adiciona um login externo à sua conta.
- OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
- validateInterval: TimeSpan.FromHours(8),
- regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
- }
- });
- //...
- // Permite o login com o provedor de login do Google.
- var google = new GoogleOAuth2AuthenticationOptions()
- {
- AccessType = "offline",
- ClientId = ConfigurationManager.AppSettings["google-clientid"],
- ClientSecret = ConfigurationManager.AppSettings["google-clientsecret"],
- Provider = new GoogleOAuth2AuthenticationProvider()
- {
- OnAuthenticated = async context =>
- {
- var userId = context.Id;
- context.Identity.AddClaim(new Claim(MyClaimTypes.GoogleUserId, userId));
- var tokenResponse = new TokenResponse()
- {
- AccessToken = context.AccessToken,
- RefreshToken = context.RefreshToken,
- ExpiresInSeconds = (long)context.ExpiresIn.Value.TotalSeconds,
- Issued = DateTime.Now,
- };
- await dataStore.StoreAsync(userId, tokenResponse);
- },
- },
- };
- foreach (var scope in MyRequestedScopes.Scopes)
- {
- google.Scope.Add(scope);
- }
- app.UseGoogleAuthentication(google);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement