Comments (11)
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.
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.
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.
Maar er moet toch ook nog een cookie verzonden worden?
from magister.
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.
Maar in die Request Cookie header moet toch ook nog een SessionID staan? En hoe krijg ik die dan?
from magister.
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.
-
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.
-
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.
Ik bedoel dat er in de request header al een SESSION_ID staat en ik die in mijn code niet kan Posten.
De Response Headers die ik krijg op de site zijn:
En de Reponse Headers in mijn code:
En de Request Header in mijn code:
Accept: application/json
from magister.
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.
Ik denk dat dat ^^ Erg helpt bedankt
from magister.
Het werkt nu, bedankt
from magister.
Related Issues (20)
- Magister update? HOT 5
- Paar vragen HOT 12
- :S Ehhm een ssl certificate? HOT 6
- Voorbeeld code HOT 2
- Documentatie website offline? HOT 1
- Wordt er nog wat aan dit project gedaan? HOT 2
- Agenda data HOT 2
- De link naar magister-api.nl is verouderd
- Magister foto HOT 1
- mcrypt deprecated
- Documentation update HOT 1
- New magister api HOT 2
- API key HOT 4
- selecting a diferent year for grades HOT 1
- Leermiddelen HOT 2
- Authentication
- Magister Update HOT 2
- Low grades HOT 2
- Still up to date? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google â¤ī¸ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from magister.