Javascript - сообщение XMLHttpRequest, используйте резонанс, чтобы получить - PullRequest
0 голосов
/ 27 апреля 2020

это мой первый пост, так как я не могу найти решение своей проблемы. (сейчас гуглил) Я не программист, я хороший гуглер :)

Я пытаюсь зайти на сайт с именем пользователя, паролем и некоторыми опциями. (/ api / login / Basi c) После этого я пытаюсь получить доступ к сайту. (/ api / sitemaster / run) Но здесь я получаю сообщение: «У пользователя нет необходимых прав доступа». Если я делаю это с браузером, все работает нормально.

Я думаю, мне нужно пройти какой-то Authtoken для запроса Get, но я понятия не имею.

Вот мой фрагмент кода:

// это работает нормально

const toSend = {
    email :"my@mail.com",
    force_sm_off: false,   //I have no clue (found from Net Sniffing of the original Application)
    password:"mypassword",
    username:"installer"}

const jsonString = JSON.stringify(toSend)  ;
const xhr = new XMLHttpRequest() ;
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0 //I have no certificate and only access the Site in my local network

xhr.open("POST", "https://192.168.2.77/api/login/Basic",false,"Provider_Engineer","mypassword" ) ;
xhr.setRequestHeader ("Content-Type", "application/json") ;
xhr.withCredentials=true ;
xhr.onreadystatechange = function() {
     const myresponse = JSON.parse(this.responseText) ; //myresponse contains: email, firstname, lastname,    roles: Array(1), token
       var myauth=myresponse.token //Saving Token for further use


   //fine until here

   //Now I'm trying to get the Page

    const xhr1 = new XMLHttpRequest() ;
    process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
    xhr1.open("GET", "https://tesla/api/sitemaster/run",false ) ;
    xhr1.setRequestHeader ("Content-Type", "application/json") ;
    xhr1.setRequestHeader ("credentials", "same-origin") ;
    xhr1.setRequestHeader ("AuthCookie", myauth) ;  //In Browser F12 I can see AuthCookie and Userrecord
    xhr1.onreadystatechange = function() {
         console.log(this.responseText)  //getting Message: User does not have adequate access rights
    }     
    xhr1.send(null)
};
xhr.send(jsonString) ; //Post Request, that is working fine

Любые предложения, как я могу зайти на этот сайт?

С уважением, Стефан

1 Ответ

0 голосов
/ 05 мая 2020

Я понял:

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
xhr1.open("GET", "https://tesla/api/sitemaster/run",false ) ;

var myBearer= "Bearer " + myauth ;

xhr1.setRequestHeader ("Authorization", myBearer) ;

найдено по адресу: Отправка маркера авторизации через Javascript

...