Я пытаюсь воспроизвести содержимое 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 после этого, он снова перенаправляет меня на страницу входа.