Я хочу, чтобы аутентифицировать пользователя с помощью логина Google, я получаю код авторизации от внешнего интерфейса, и я хочу обменять его на токен доступа с помощью Google.Получить токен Google через веб-интерфейс .NET, ошибка redirect_uri_mismatch
Это мой код:
[Route("google")]
public object Google(AuthModel model) {
IAuthorizationCodeFlow flow =
new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer {
ClientSecrets = new ClientSecrets {
ClientId = model.ClientId,
ClientSecret = Constants.Constants.GOOGLE_SECRET
},
Scopes = new[] { "https://www.googleapis.com/auth/plus.login" }
});
var token = flow.ExchangeCodeForTokenAsync("", model.Code, "postmessage",
CancellationToken.None).Result;
return token.AccessToken;
}
При вызове метода flow.ExchangeCodeForTokenAsync
я получаю ошибку
{"Error:\"redirect_uri_mismatch\", Description:\"\", Uri:\"\""}
Я не понимаю, где я могу определить перенаправление URL? У меня провести несколько часов в googleing вопрос и отвечает на все говорят, что я должен определить некоторые URL-адреса в моем аккаунте приложений Google, где у меня есть на данный момент:
Redirect URIs
http://localhost:53906
http://localhost:53906/authcallback
Третий параметр [ExchangeCodeForTokenAsync] (https://developers.google.com/api-client-library/dotnet/reference/1.9.1/classGoogle_1_1Apis_1_1Auth_1_1OAuth2_1_1Flows_1_1AuthorizationCodeFlow#ae800a73ce82d01e0329e19cc68b02a2c) должно быть URI перенаправления, я не думаю, что «postmessage» - это значение, которое вы хотите использовать. – abraham
Посмотрите в консоли разработчика, чтобы определить перенаправление uri –