Posted by & filed under Uncategorized.

Etter noen lange dager med prøving og feiling har jeg endelig klart å logge på StudentWeb med CURL og PHP. Dette åpner for å hente ut informasjon knyttet til eksamen og andre meldinger relatert til studiet og gjennomføring.

Noen av utfordringene jeg møtte i første runde er alle omplasseringene av sidene. Se HTTP 302 (http://en.wikipedia.org/wiki/HTTP_302), i et annet tilfelle var det en HTTP 303. Jeg antar at dette er gjort for å gjøre vedlikehold enklere og organisering for større prosjekter. En av ulempene ved dette er at CURL stopper ved første etterspørsel. Etter noen runder på hvordan HTTP 302 fungerer kom jeg fram til følgende innstilling for CURL.

 

View source
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

 

Nå som det er avklart kan vi starte påloggingsprosessen.

1. Vi starter ved å etablere cookie informasjon for valg institutt sin portal. Det gjør vi ved å besøke følgende link: https://www.studweb.no/as/WebObjects/studentweb2?inst=hiof hvor hiof byttes ut med ønsket instituttkode for universitet eller høgskole.

2. På denne siden er den en knapp for logg inn med Feide. Denne knappen sender ved informasjon relatert til innloggingen. Under testing valgte jeg å skru av JavaScript i nettleseren for å se det samme som CURL. Legg merke til at JavaScript er satt til null i skjema.

 

View source
<form action="/as/WebObjects/studentweb2.woa/wa/feideLogin" name="feideForm" method="post">
  <input type="hidden" name="fnromgjor">
  <input type="hidden" name="javascript" value="0">
  <input type="submit" name="feideLogin" value="Logg inn">
  <input type="hidden" value="feideLogin" name="WOSubmitAction">
  <input type="hidden" value="hiof" name="inst">
</form>

 

3. På den påfølgende siden logger vi på med brukernavn og passord. Ved feil brukernavn og passord forekommer den en ny HTTP 302 hvor feilmelding spesifiseres i URL.

4. Ved riktig brukernavn og passord kommer vi til en ny side. Legg merke til at vi befinner oss på Feide sitt domene. Denne siden er et skjema med en nøkkel gitt av Feide som vi trenger for å logge inn på StudentWeb. Nøkkelen ligger i et skjema og dersom du ikke har skrudd av JavaScript kommer du ikke til å se dette skjemaet.

 

View source
<body onload="document.forms[0].submit()">

    <noscript>
        <p><strong>Note:</strong> Since your browser does not support JavaScript, you must press the button below once to proceed.</p> 
    </noscript> 

    <form method="post" action="https://www.studweb.no/as/WebObjects/studentweb2.woa/wa/feideMoria">
<input type="hidden" name="SAMLResponse" value="{din nøkkel}" /><input type="hidden" name="RelayState" value="hiof&amp;javascript=0&amp;fnromgjor=" />
        <noscript>
            <input type="submit" value="Submit" />
        </noscript>

    </form>

</body>

 

Nå er du forhåpentligvis logget inn på StudentWeb ved bruk av CURL. Et lite tips videre for navigering av et bruk av regulære uttrykk. Linken endrer seg for hver session og hver gang man klikker på en link så endrer de påfølgende lenkene seg.

Konklusjon: Det skal ikke være lett å logge på ved bruk av CURL på StudentWeb. Nå starter utvikling av applikasjon for innhenting og presentering av eksamensresultater på en forenklet måte.

4 Responses to “Logg inn på StudentWeb gjennom Feide med PHP og CURL”

  1. Øyvind Grimstad

    Hei. Jeg lastet akkurat ned applikasjonen din “Studweb mini” fra play store, men har problemer med innlogging. Jeg går på høgskolen i Gjøvik som nylig har byttet over til Feide innlogging så jeg antar at det er årsaken til at jeg ikke får logget inn. Jeg bare lurte på om dette på noe vis lar seg ordne. Har utrolig lyst at den skal fungere. Ha en fin dag 🙂 Mvh Øyvind Grimstad.

    Reply
  2. olavjh

    Hei Øyvind! Jeg har sendt deg en epost med en lenke til en test-side. Der har jeg lagt inn Høgskolen i Gjøvik helt nederst. Om det fungerer for deg å logge inn der, så vil jeg starte oppdateringen av appen! 🙂

    Reply
  3. Andreas

    Hei Olav! Har lyst å lage en liten greie som logger inn på Studweb og sjekker om karakterer er kommet. Akkurat kommet i gang. Ser imidlertid ut til at denne framgangsmåten er utdatert på “nye” Studweb. Har du sett noe på det? Ser ut til at nye Studweb krever javascript. Er en hel jungel av headere som sendes fra http://fsweb.no/studentweb/login.jsf. Hadde vært awesome å få sett litt på researchen du har gjort tidligere. Hadde satt utrolig pris på en mail med litt info? Kan også gi deg det (lille) jeg har funnet til nå.

    Reply

Leave a Reply

  • (will not be published)