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; }
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."); } }
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."); } }