Проблема: все пользователи имеют доступ к одной учетной записи на Google Диске. - PullRequest
0 голосов
/ 27 февраля 2020

Я позволил пользователям диска Google войти в систему и использовать данные своего диска Google. Однако только первый пользователь должен пройти аутентификацию, и следующие пользователи получают доступ к данным первых пользователей! Что не так в этом коде?

 public static DriveService GetService()
    {
        //get Credentials from client_secret.json file 
        UserCredential credential;
        var path = HttpContext.Current.Server.MapPath(@"~/client_secret.json");
        using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
        {
            // The file token.json stores the user's access and refresh tokens, and is created
            // automatically when the authorization flow completes for the first time.
            string credPath = HttpContext.Current.Server.MapPath(@"~/token.json");
            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
        }

        //create Drive API service.
        DriveService service = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = "GoogleDriveRestAPI-v3",
        });
        return service;
    }

1 Ответ

2 голосов
/ 27 февраля 2020

Это сработало, но учетная запись была привязана к серверу, и все потенциальные пользователи получили бы доступ к одной и той же учетной записи.

Работа клиентской библиотеки заключается в том, что она хранит учетные данные пользователей в credpath. каждый пользователь обозначается пользователем, о котором вы говорите, что он «пользователь»,

ваш код устанавливает только одного «пользователя», поэтому он будет загружать одного пользователя каждый раз.

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