Как сохранить файлы cookie, полученные при входе в Sakai, и передать их другим остальным звонкам в Sakai - PullRequest
1 голос
/ 01 апреля 2019

Я пытаюсь воспроизвести содержимое Scorm через Sakai LMS из моего приложения. Для этого я хочу получить сеанс пользователя после входа в Sakai и передать его для любых других вызовов. Я могу получить файл cookie сеанса пользователя после входа в систему из Sakai с помощью вызова покоя, но я не могу передать «Set-cookie» в заголовок или сохранить файл cookie вручную, чтобы я мог использовать их для вызова другие URL-адреса, которые воспроизводят Scorm или вызывают другие функции для текущего пользователя. Как я могу использовать cookie, возвращенный API getSession, для выполнения других функций для вошедшего в систему пользователя?

Я попытался передать заголовок ответа от имени входа, чтобы сделать следующий вызов API.

Я попытался сформировать Session и добавить его в заголовок после удаления «только HTML», например «SAKAI2SESSIONID =" + session + ". Domain; Path = /;"

Я попытался передать идентификатор сеанса и cookie в ответе и вручную сохранить их в локальном хранилище

----- 1 ------

HttpPost httpPost = new HttpPost(url);
            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
            httpPost.setEntity(new UrlEncodedFormEntity(params));
            HttpResponse response = client.execute(httpPost);
            Header[] headers = response.getAllHeaders();
            String session=EntityUtils.toString(response.getEntity());
response.setHeader("Set-Cookie","SAKAI2SESSIONID="+session);

---- 3 ----

function getSessionId() {
                let data = {
                    password: "pass",
                    userId: "user"
                }
                fetch('http:ldomain/sakai/getSession', {
                    method: 'POST',
                    body: JSON.stringify(data), 
                    headers:{
                        'Content-Type': 'application/json',
                        "Access-Control-Allow-Origin": "*"
                    },

                })
                .then(response => response.json())
                .then(response => {
                    localStorage.setItem('SAKAI2SESSIONID', response.entity.cookie[0])
                    document.cookie= response.entity.cookie[0];
                })
                .catch(error => console.error('Error:', error))
            }         

, несмотря на то, что я попробовал все это, когда я пытался нажать Scorm URL после этого, он снова перенаправляет меня на страницу входа.

...