#azure #oauth #google-api #google-drive-api #azure-web-app-service
#azure #oauth #google-api #google-drive-api #azure-web-app-service
Вопрос:
У меня есть мой проект MVC .NET, опубликованный на веб-сайте Azure.
Проблема Exception
в том, что я получаю сообщение с надписью «Доступ запрещен», когда я создаю свой UserCredential
:
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret }
, scopes
, userName
, CancellationToken.None
, new DataStore()).Resu<
Мои учетные данные консоли GoogleAPIs выглядят следующим образом ( Client Secret
):
Затем на моем портале Azure я настроил Authentication/Authorization
:
Проверка подлинности портала Azure
Я уверен, что проблема связана с проблемой учетных данных, потому что, когда я пытаюсь это сделать на локальном хосте, все работает нормально. Проблема возникает при развертывании в Azure с использованием точно таких же учетных данных.
- Я пропустил какой-либо шаг?
- Есть ли проблема в моих учетных данных Google?
- Должен ли я включить что-либо еще в Azure?
Ответ №1:
Для этого сценария я бы посоветовал вам попробовать вместо этого использовать GoogleAuthorizationCodeFlow. Подробные инструкции по использованию GoogleAuthorizationCodeFlow см. В этой статье. Я протестировал код и отобразил идентификатор пользователя в индексе страницы. Он отлично работает в веб-приложении Azure.
Вот HomeController:
public class HomeController : AsyncController
{
public async Task<ActionResult> IndexAsync(CancellationToken cancellationToken)
{
var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()).
AuthorizeAsync(cancellationToken);
if (result.Credential != null)
{
ViewBag.Message = result.Credential.UserId;
return View();
}
else
{
return new RedirectResult(result.RedirectUri);
}
}
}
Вот результат: