예제 #1
0
        public object Get(LoginProviderEnum provider)
        {
            var desktop     = HttpContext.Request.Query["desktop"] == "true";
            var additionals = new Dictionary <string, string>();

            if (desktop)
            {
                additionals = HttpContext.Request.Query.ToDictionary(r => r.Key, r => r.Value.FirstOrDefault());
            }

            switch (provider)
            {
            case LoginProviderEnum.Google:
                return(OAuth20TokenHelper.RequestCode <GoogleLoginProvider>(
                           GoogleLoginProvider.GoogleScopeDrive,
                           new Dictionary <string, string>
                {
                    { "access_type", "offline" },
                    { "prompt", "consent" }
                }, additionalStateArgs: additionals));

            case LoginProviderEnum.Dropbox:
                return(OAuth20TokenHelper.RequestCode <DropboxLoginProvider>(
                           additionalArgs: new Dictionary <string, string>
                {
                    { "force_reauthentication", "true" }
                }, additionalStateArgs: additionals));

            case LoginProviderEnum.Docusign:
                return(OAuth20TokenHelper.RequestCode <DocuSignLoginProvider>(
                           DocuSignLoginProvider.DocuSignLoginProviderScopes,
                           new Dictionary <string, string>
                {
                    { "prompt", "login" }
                }, additionalStateArgs: additionals));

            case LoginProviderEnum.Box:
                return(OAuth20TokenHelper.RequestCode <BoxLoginProvider>(additionalStateArgs: additionals));

            case LoginProviderEnum.OneDrive:
                return(OAuth20TokenHelper.RequestCode <OneDriveLoginProvider>(OneDriveLoginProvider.OneDriveLoginProviderScopes, additionalStateArgs: additionals));

            case LoginProviderEnum.Wordpress:
                return(OAuth20TokenHelper.RequestCode <WordpressLoginProvider>(additionalStateArgs: additionals));
            }

            return(null);
        }
예제 #2
0
        public object Get(LoginProviderEnum provider)
        {
            switch (provider)
            {
            case LoginProviderEnum.Google:
                return(OAuth20TokenHelper.RequestCode <GoogleLoginProvider>(
                           GoogleLoginProvider.GoogleScopeDrive,
                           new Dictionary <string, string>
                {
                    { "access_type", "offline" },
                    { "prompt", "consent" }
                }));

            case LoginProviderEnum.Dropbox:
                return(OAuth20TokenHelper.RequestCode <DropboxLoginProvider>(
                           additionalArgs: new Dictionary <string, string>
                {
                    { "force_reauthentication", "true" }
                }));

            case LoginProviderEnum.Docusign:
                return(OAuth20TokenHelper.RequestCode <DocuSignLoginProvider>(DocuSignLoginProvider.DocuSignLoginProviderScopes,
                                                                              new Dictionary <string, string>
                {
                    { "prompt", "login" }
                }));

            case LoginProviderEnum.Box:
                return(OAuth20TokenHelper.RequestCode <BoxLoginProvider>());

            case LoginProviderEnum.OneDrive:
                return(OAuth20TokenHelper.RequestCode <OneDriveLoginProvider>(OneDriveLoginProvider.OneDriveLoginProviderScopes));

            case LoginProviderEnum.Wordpress:
                return(OAuth20TokenHelper.RequestCode <WordpressLoginProvider>());
            }

            return(null);
        }