[OpenID] False bij authenticatie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste Tweakers,

Ik ben bezig met het opzetten van een OpenID consumer. Het is voor het eerst dat ik bezig ben met OpenID en heb me al aardig wat ingelezen over de werking ervan. Ik vind het een mooi systeem en wil de gebruikers van mijn forum de mogelijkheid bieden om ook met OpenID in te kunnen loggen.

Zoals de kenners van OpenID wel weten werkt het inloggen van OpenID is verschillende stappen. form invullen met je OpenID -> Authentication request -> Authentication -> Restricted pagina weergeven als de authenticatie als resultaat true geeft. De eerste en tweede stap heb ik werkend maar bij de derde stap, Authentication gaat er bij mij dus iets fout, de authentication returned namelijk een false. Ik heb al proberen te debuggen en met enkele var_dumps kom ik meestal vrij snel achter de fout maar in dit geval niet. Meestal vind ik daarna wel vrij snel een oplossing op Google maar dit keer is me dat helaas niet gelukt. Ik hoop dat iemand mij hier verder kan helpen, als ik alleen al weet waar de fout zit zou ik al erg geholpen zijn.

Het Authentication script wat ik nu heb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
    // include files
    require_once "Auth/OpenID/Consumer.php";
    require_once "Auth/OpenID/FileStore.php";
    
    // Start session
    session_start();
    
    // create file storage area for OpenID data
    $store = new Auth_OpenID_FileStore('./old_store');
    
    // create OpenID consumer
    // read response from OpenID provider
    $consumer = new Auth_OpenID_Consumer($store);
    $response = $consumer->complete('http://localhost/test/try.php');
    
    //set session variable depending on authentication result
    if ($response->status == Auth_OpenID_SUCCESS) {
        $_SESSION['OPENID_AUTH'] = true;
    } else {
        $_SESSION['OPENID_AUTH'] = false;
    }
    
    // redirect to restricted page
    header('Location: restricted.php');
?>


Het script maakt gebruik van de OpenID JanRain Library, en het script geeft $_SESSION['OPENID_AUTH'] als false.

Met vriendelijke groet,

Bas

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Wat versta jij dan onder debuggen? En waarom geef je dan geen info over wát er uit je var_dumps is gekomen ;-)

Wat is bijvoorbeeld de waarde van
PHP:
1
$response->status
? We weten nu alleen dat het blijkbaar niet Auth_OpenID_SUCCESS is.

Heb je PHP-error reporting aanstaan? Krijg je daar notices?

[ Voor 19% gewijzigd door ValHallASW op 20-01-2012 09:47 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm blijkbaar heb ik gister var_dump($consumer->complete('http://localhost/test/try.php')); overgeslagen want deze gaf in de dump de interessante foutmelding dat de return_to url niet gelijk is aan de verwachte url. Toen ik $consumer->complete('http://localhost/test/try.php') aanpaste naar $consumer->complete('http://localhost/test/authenticate.php') werkte het wel! :)

Ik was gister blijkbaar niet meer zo helder, dacht echt dat ik alles doorlopen had met var_dumps maar blijkbaar niet. Goede tip dus om nog eens te debuggen. ;)