private User GetUserFromUserInfo(UserInfo userInfo) { var provider = OAuthProvider.GetByName(userInfo.ProviderName); if (TCAdmin.SDK.Objects.User.GetAllUsers(2, true) .FindByCustomField($"OAUTH::{provider}", userInfo.Id) is User userByLink) { return(userByLink); } if (provider.Configuration.Parse <OAuthProviderConfiguration>().AllowEmailAuth) { var users = TCAdmin.SDK.Objects.User.GetUsersByEmail(userInfo.Email).Cast <User>().ToList(); switch (users.Count) { case 0: SetOAuthError("There are no accounts with this email. Disallowing OAuth Login."); return(null); case 1: return(users[0]); default: SetOAuthError("There is more than one user with this email address. Disallowing OAuth Login."); break; } } else { SetOAuthError("Please link an account with this OAuth provider before logging in."); } return(null); }
public override OAuth2Client GetClient() { var config = OAuthProvider.GetByName("Google").Configuration.Parse <OAuthProviderConfiguration>(); return(new GoogleClient(new RequestFactory(), new OAuth2.Configuration.ClientConfiguration { ClientId = config.ClientId.Trim(), ClientSecret = config.ClientSecret.Trim(), RedirectUri = OAuthProviderHelper.RedirectUrl, Scope = "profile email" })); }
public override OAuth2Client GetClient() { var config = OAuthProvider.GetByName("Github").Configuration.Parse <OAuthProviderConfiguration>(); return(new GitHubClient(new RequestFactory(), new OAuth2.Configuration.ClientConfiguration { ClientId = config.ClientId.Trim(), ClientSecret = config.ClientSecret.Trim(), RedirectUri = OAuthProviderHelper.RedirectUrl, Scope = "user read:user" })); }