Giter VIP home page Giter VIP logo

Comments (11)

Kickwood avatar Kickwood commented on June 18, 2024

Deze error wordt alleen gegeven als de inloggegevens niet correct zijn. Het kan dus niet anders dan dat jij hier ergens een fout in hebt gemaakt. Probeer stapsgewijs alles te controleren en vergeet niet te letten op data types.

from magister.

LordBunny avatar LordBunny commented on June 18, 2024

Ik weet wat het probleem is, de cookie. Nu ik dat weet zou ik willen weten hoe ik de SESSION_ID= krijg. Heb jij een idee hoe ik die moet krijgen?

from magister.

Kickwood avatar Kickwood commented on June 18, 2024

De endpoint waarnaar jij de inloggegevens post, geeft een set-cookie header terug met daarin de SESSION_ID cookie. Dan is het gewoon een kwestie van de header uitlezen en de cookie verwerken.

from magister.

LordBunny avatar LordBunny commented on June 18, 2024

Maar er moet toch ook nog een cookie verzonden worden?

from magister.

Kickwood avatar Kickwood commented on June 18, 2024

Dan stuur je gewoon een cookie header mee met elk request dat je maakt naar Magister.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cookie

from magister.

LordBunny avatar LordBunny commented on June 18, 2024

Maar in die Request Cookie header moet toch ook nog een SessionID staan? En hoe krijg ik die dan?

from magister.

Kickwood avatar Kickwood commented on June 18, 2024

Ik denk dat je toch echt meer onderzoek moet doen, aangezien je om dingen vraagt die je zou moeten weten. Ik zal het even oppervlakkig proberen uit te leggen, maar liever verwijs ik je door naar het Internet.

  1. Eerst moet de gebruiker geauthoriseerd worden door de externe Magister API. Je stuurt hiervoor een request met daarin minstens een gebruikersnaam en wachtwoord. Bij een succesvolle authenticatie stuurt de API een response met daarin een Set-Cookie header. Normaliter gebruikt de browser dit om lokaal een cookie aan te maken, die vervolgens bij elk request wordt meegestuurd. Dit zouden wij dus moeten nabootsen. Dmv je code lees je de cookies uit die Magister terugstuurt - in dit geval ÊÊn cookie met de naam SESSION_ID. De waarde van deze cookie sla je lokaal op.

  2. Bij alle daaropvolgende requests naar een API endpoint waarvoor we ingelogd moeten zijn, moeten wij nu precies dezelfde cookie opsturen. Magister gebruikt dit dan intern om te controleren of de gebruiker is ingelogd. Dit doen wij nu dmv een Cookie header. Hierin moet een cookie gedefinieerd worden met de naam SESSION_ID met de waarde die we eerder lokaal opgeslagen hebben. Wij sturen dus eigenlijk de cookie gedefineerd in de Set-Cookie header terug in een Cookie header. De naam en waarde van de cookie moeten overeenkomen.

Overigens weet ik niet of jij doorhebt dat wij niet van Magister zelf zijn, maar dit enkel een PHP library is voor Magister die wij hebben gepubliceerd.

from magister.

LordBunny avatar LordBunny commented on June 18, 2024

Ik bedoel dat er in de request header al een SESSION_ID staat en ik die in mijn code niet kan Posten.
dit

De Response Headers die ik krijg op de site zijn:

dit2

En de Reponse Headers in mijn code:
dit3

En de Request Header in mijn code:
Accept: application/json

from magister.

Kickwood avatar Kickwood commented on June 18, 2024

Ik denk dat ik je probleem eindelijk begrijp. Voordat je probeert in te loggen moet je eerst een DELETE request versturen naar /api/sessies/huidige. Deze geeft een Set-Cookie header terug, waarvan de cookie vervolgens dient meegegeven te worden met je login request. Als je dit eerst doet en vervolgens probeert in te loggen zou je Bad Request moeten verdwijnen en de Magister API een Set-Cookie header moeten teruggeven.

from magister.

LordBunny avatar LordBunny commented on June 18, 2024

Ik denk dat dat ^^ Erg helpt bedankt

from magister.

LordBunny avatar LordBunny commented on June 18, 2024

Het werkt nu, bedankt

from magister.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤ī¸ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.