Итак, я пытаюсь сделать логин пользователя, используя его учетную запись Google (впервые делаю это), и Я использую официальный плагин Google для Unity для этого . Последняя часть - это получение кода авторизации пользователя и его отправка на наш пользовательский сервер, который запрашивает токен доступа. Но как его получить? Является ли task.result.authCode или task.result.idToken одним из них?
В настоящее время я пытаюсь получить task.Result.authCode и вручную отправить его на сервер через наш интерфейс отладки, но не могупо какой-то причине этот authCode не отображается в logcat через Debug.Log. Приведенный ниже код представляет собой фрагмент из примера скрипта плагина Google, я только приложил немного Debug.Log, чтобы увидеть результат задачи и попытаться вручную отправить код на наш сервер.
internal void OnAuthenticationFinished(Task<GoogleSignInUser> task) {
if (task.IsFaulted) {
using (IEnumerator<System.Exception> enumerator =
task.Exception.InnerExceptions.GetEnumerator()) {
if (enumerator.MoveNext()) {
GoogleSignIn.SignInException error =
(GoogleSignIn.SignInException)enumerator.Current;
AddStatusText("Got Error: " + error.Status + " " + error.Message);
} else {
AddStatusText("Got Unexpected Exception?!?" + task.Exception);
}
}
} else if(task.IsCanceled) {
AddStatusText("Canceled");
} else { // This works, but the Debug.Log below doesn't show up in the logcat.
AddStatusText("Logged in as: " + task.Result.DisplayName + "!");
Debug.Log("authCode: " + task.Result.AuthCode);
Debug.Log("idToken: " + task.Result.IdToken);
// Below is one of the ways of sending the access token manually.
GoogleLoginOrRegister user = new GoogleLoginOrRegister();
// Getting authenticated user authCode
user.Code = task.Result.AuthCode;
// Requires an access token as input
userApi.GoogleLoginOrRegister(user);
}
Если правильный токен доступа отправлен на сервер, пользователь может правильно войти в систему, используя свою учетную запись Google. Проблема в том, что в настоящее время у меня нет способа проверить, правильный ли authCode или idToken, или есть ли еще какие-то шаги, которые мне нужно сделать, прежде чем получить правильный токен доступа. Я отправляю authCode на сервер, но ответа нет, а также приложение не входит в систему, даже если сама задача находится в состоянии Success (посмотрите код выше в последнем операторе else, эта часть действительно вызван и работает, так как я вижу свое отображаемое имя из учетной записи Google в тексте состояния в моем приложении).