Как получить токен доступа в Unity? Проблема с редиректом - PullRequest
0 голосов
/ 02 апреля 2019

Я делаю софт о Unity для наших партнеров. У них есть своя платформа с авторизацией oauth2 с их сайта. Мне нужно реализовать эту логику: Шаг 1: отправка на сервер по конечной точке аутентификации client_id, redirect_uri, response_type, scope. Шаг 2: пользователь должен авторизоваться в браузере с помощью логина и пароля, которые используются для входа на свой сайт Шаг 3: сервер дает мне код на URI перенаправления, как это "https://localhost:port/?code="code"", Шаг 4: Я беру этот код и отправляю конечной точке токена новую форму с этим кодом

Проблема в том, что в браузере открыта вкладка, где пользователь может авторизоваться (Шаг 2), а затем перейти к перенаправлению (Шаг 3). Я пытался использовать Application.OpenURL (www.url); но после авторизации пользователя я вижу в личной области браузера пользователя

Я написал этот код, в Debug у меня есть HTML-код нужной страницы

void Start()
    {
        client_id = "<CLIENTID>";
        client_secret = "<CLIENTSECRET>";
        redirect_uri = "https://localhost:<PORT>";
        StartCoroutine(SendAuthRequest());

    }

    IEnumerator SendAuthRequest()
    {
        path = "http://<URL>/connect/authorize";

        WWWForm form = new WWWForm();
        form.AddField("client_id", client_id);
        //form.AddField("client_secret", client_secret);
        form.AddField("grant_type", "authorization_code");
        form.AddField("redirect_uri", redirect_uri);
        form.AddField("response_type", "code");
        form.AddField("scope", "api");

        WWW wwwRequest = new WWW(path, form.data);
        //UnityWebRequest www =  UnityWebRequest.Post(path, form);

        yield return wwwRequest;

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