Как я могу сгенерировать токен обновления в asp.net? - PullRequest
2 голосов
/ 30 мая 2019

Я могу получить токен доступа со стороны клиента с помощью средства выбора файлов Google.Но срок действия токена истекает через 3600 секунд.Я почесал голову, чтобы получить токен обновления, но не смог сделать это на C # ASP.NET.Может ли кто-нибудь помочь с кодом C #, чтобы понять и получить токен обновления?Это будет очень полезно.Спасибо.

Я пытался использовать GoogleWebAuthorizationBroker.AuthorizeAsync , он работает на моем локальном компьютере, но не работает на рабочем сервере IIS.Я также пытался GoogleAuthorizationCodeFlow , но не смог пойти дальше, и я не знаю, как его использовать.

IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
                {
                    ClientSecrets = new ClientSecrets
                    {
                        ClientId = System.Configuration.ConfigurationManager.AppSettings["GoogleDriveClientID"],
                        ClientSecret = System.Configuration.ConfigurationManager.AppSettings["GoogleDriveClientSecret"]
                    },
                    Scopes = Scopes,
                    DataStore = null
                });

Я пробовал это, но я не знаю, как двигаться впередпосле этого.

1 Ответ

0 голосов
/ 31 мая 2019

Кажется, вы пытаетесь сгенерировать токен обновления из C# примера кода.

Вы можете попробовать следующий фрагмент кода:

Пример обновления токена:

public class AppFlowMetadata : FlowMetadata
    {
        private static readonly IAuthorizationCodeFlow flow =
            new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
                {
                    ClientSecrets = new ClientSecrets
                    {
                        ClientId = "yourClientId",
                        ClientSecret = "yourClientSecret"
                    },
                    Scopes = new[] { DriveService.Scope.Drive },
                    DataStore = new FileDataStore("Drive.Api.Auth.Store")
                });

        public override string GetUserId(Controller controller)
        {
            // In this sample we use the session to store the user identifiers.
            // That's not the best practice, because you should have a logic to identify
            // a user. You might want to use "OpenID Connect".
            // You can read more about the protocol in the following link:
            // https://developers.google.com/accounts/docs/OAuth2Login.
            var user = controller.Session["user"];
            if (user == null)
            {
                user = Guid.NewGuid();
                controller.Session["user"] = user;
            }
            return user.ToString();

        }

        public override IAuthorizationCodeFlow Flow
        {
            get { return flow; }
        }
    }

Примечание: Если у вас есть какие-либо вопросы, как вы получите ClientId, ClientSecret и Scope Пожалуйста см. этот пример docs MVC

Если у вас все еще есть вопросы, не стесняйтесь поделиться. Спасибо и счастливого кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...