league/oauth2-google to 4.0.site query param was present in the OAuth redirect URI.league/oauth1-client to 1.9.league/oauth2-client to 2.5.dukt\social\controllers\LoginAccountsController::EVENT_AFTER_OAUTH_CALLBACK. (#22)dukt\social\services\LoginAccounts::saveLoginAccount(). (#26)dukt/oauth2-google composer dependency with league/oauth2-google.\dukt\social\services\LoginProviders::getLoginProvider() in \dukt\social\controllers\LoginProvidersController::actionOauth().dukt\social\base\LoginProvider::getDefaultProfileFields().dukt\social\base\LoginProvider::getLoginProviderConfig().dukt\social\base\LoginProvider::getProfileFields().dukt\social\base\LoginProvider::getUserFieldMapping().dukt\social\base\LoginProviderInterface::getDefaultUserFieldMapping().dukt\social\base\LoginProviderInterface::getOauthProvider().dukt\social\Plugin::getLoginProviderConfig().loginProviders config now defines the user field mapping, the profile fields and the OAuth configuration for login providers.dukt\social\services\LoginAccounts::saveRemotePhoto() since craft\services\Users::saveUserPhoto() already handles that.loginProviders config.v3.0.dukt\social\base\LoginProvider::getRemoteProfile().dukt\social\base\LoginProviderInterface::getProfile().dukt\social\models\Settings::$showCpSection.dukt\social\Plugin::$plugin.dukt\social\services\LoginProviders::getUserMapping().dukt\social\Plugin::beforeUpdate().dukt\social\base\LoginProvider::getAuthorizationOptions() to dukt\social\base\LoginProvider::getOauthAuthorizationOptions().dukt\social\base\LoginProvider::getDefaultAuthorizationOptions() to dukt\social\base\LoginProvider::getDefaultOauthAuthorizationOptions().dukt\social\base\LoginProvider::getDefaultScope() to dukt\social\base\LoginProvider::getDefaultOauthScope().dukt\social\base\LoginProvider::getScope() to dukt\social\base\LoginProvider::getOauthScope().dukt\social\controllers\LoginAccountsController::actionChangePhoto() method.dukt\social\models\Settings::$loginProviders property.dukt\social\base\LoginProviderInterface::getName()’s return to string.graphApiVersion login provider config.^3.0.0-RC1.registerLoginProviderTypes event to dukt\social\services\LoginAccounts, giving plugins a change to register login provider types (replacing getSocialLoginProviders()).dukt\social\events\RegisterLoginProviderTypesEvent.craft\web\twig\variables\CraftVariable’s init event to register Social’s variable class, replacing the now-deprecated defineComponents.dukt\social\Plugin::getSocialLoginProviders().dukt\social\base\LoginProvider::__toString().dukt\social\base\LoginProvider::getInfos().dukt\social\base\LoginProvider::getManagerUrl().dukt\social\base\LoginProvider::getRedirectUri().dukt\social\base\LoginProvider::getScopeDocsUrl().dukt\social\base\PluginTrait.dukt\social\elements\db\LoginAccountQuery.dukt\social\elements\LoginAccount::defineDefaultTableAttributes().dukt\social\elements\LoginAccount::getUsername().dukt\social\elements\LoginAccount::getFirstName().dukt\social\elements\LoginAccount::getLastName().dukt\social\elements\LoginAccount::getEmail().dukt\social\errors\LoginAccountNotFoundException.dukt\social\loginproviders\Facebook::getManagerUrl().dukt\social\loginproviders\Facebook::getScopeDocsUrl().dukt\social\loginproviders\Google::getManagerUrl().dukt\social\loginproviders\Google::getScopeDocsUrl().dukt\social\loginproviders\Twitter::getManagerUrl().dukt\social\models\Settings.dukt\social\models\Token.dukt\social\web\assets\login\LoginAsset.dukt\social\web\assets\loginaccountindex\LoginAccountIndexAsset.dukt\social\web\assets\social\SocialAsset._components/users/login-accounts-pane.html template._components/users/login-accounts-table-attribute.html template.loginaccounts/_element.html template.settings/_general.html template.icons/facebook.svg icon.icons/google.svg icon.icons/twitter.svg icon.craftcms/cms:^3.0.0-beta.20 dependency.league/oauth1-client:1.7.0@dev dependency.league/oauth2-client:^2.2 dependency.dukt/oauth2-google:^2.0" dependency.league/oauth2-facebook:^2.0 dependency.dukt\social\elements\LoginAccount::authenticate() now checks that there is a matching Social UID before logging in.dukt\social\base\LoginProvider::getRemoteProfile() is now a protected method.scope parameter in dukt\social\services\LoginAccounts::getLoginUrl().advancedMode config setting.Craft\Social_InstallController.Craft\Social_LoginAccountModel.Craft\Social_ProviderModel.Craft\Social_UserSessionService.Craft\SocialController.Craft\SocialService.Craft\SocialTrait.Craft\SocialUserIdentity.dukt\social\base\LoginProvider::getOauthProvider().dukt\social\controllers\LoginAccountsController::actionLogout().dukt\social\services\LoginAccounts::getLogoutUrl().dukt\social\web\twig\variables\SocialVariable::getLogoutUrl()._special/install/dependencies.html template._special/install/dependencies.html template.Craft\Social_LoginAccountElementType to dukt\social\elements\LoginAccount .Craft\Social_LoginAccountRecord to dukt\social\records\LoginAccount.Craft\Social_LoginAccountsController to dukt\social\controllers\LoginAccountsController.Craft\Social_LoginAccountsService to dukt\social\services\LoginAccounts.Craft\Social_LoginProvidersController to dukt\social\controllers\LoginProvidersController.Craft\Social_LoginProvidersService to dukt\social\services\LoginProviders.Craft\Social_SettingsController to dukt\social\controllers\SettingsController.Craft\SocialPlugin to dukt\social\Plugin.Craft\SocialVariable to dukt\social\web\twig\variables\SocialVariable.Dukt\Social\LoginProviders\BaseProvider to dukt\social\base\LoginProvider.$referer to $originUrl in dukt\social\controllers\LoginAccountsController.settings/_index.html template to settings/index.html.resources/images/defaultuser.svg to icons/defaultuser.svg.dukt\social\services\LoginAccounts::saveRemotePhoto() was trying to remove a temp file that didn’t exist.SocialTrait.Social_InstallController.docsUrl to settings pages.Social_ProviderModel::getOauthProvider() and Social_LoginAccountModel::getOauthProvider().Social_PluginController.Social_PluginService.