Пример #1
0
        public async Task<LoginResult> AuthenticateAsync(FacebookAccount account, RemoteUser user)
        {
            var facebookUser = GetFacebookUserInfo(account.Token);

            if (!Validate(facebookUser, account.FacebookUserId, account.Email))
            {
                return new LoginResult
                {
                    Status = false,
                    Message = "Access is denied"
                };
            }

            var result =
                await
                    FacebookSignIn.SignInAsync(this.Tenant, account.FacebookUserId, account.Email, account.OfficeId,
                        facebookUser.Name, account.Token, user.Browser,
                        user.IpAddress, account.Culture).ConfigureAwait(false);

            if (result.Status)
            {
                if (!await Registrations.HasAccountAsync(this.Tenant, account.Email).ConfigureAwait(false))
                {
                    string template = "~/Tenants/{tenant}/Areas/Frapid.Account/EmailTemplates/welcome-email-other.html";
                    var welcomeEmail = new WelcomeEmail(facebookUser, template, ProviderName);
                    await welcomeEmail.SendAsync(this.Tenant).ConfigureAwait(false);
                }
            }
            return result;
        }
Пример #2
0
 public async Task<ActionResult> FacebookSignInAsync(FacebookAccount account)
 {
     var auth = new FacebookAuthentication(this.Tenant);
     try
     {
         var result = await auth.AuthenticateAsync(account, this.RemoteUser).ConfigureAwait(false);
         return await this.OnAuthenticatedAsync(result).ConfigureAwait(true);
     }
     catch(NpgsqlException)
     {
         return this.Json("Access is denied.");
     }
 }
Пример #3
0
 public async Task<ActionResult> FacebookSignInAsync(FacebookAccount account)
 {
     var auth = new FacebookAuthentication();
     try
     {
         var result =
             await auth.AuthenticateAsync(account, this.RemoteUser);
         return this.OnAuthenticated(result);
     }
     catch (NpgsqlException)
     {
         return this.Json("Access is denied.");
     }
 }