php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.07.2011, 11:29  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] PHP-OpenID (Janrain): return_to does not match return URL

Hallo zusammen,

Bei diesem Code bekomme ich als $response->message
Zitat:
return_to does not match return URL. Expected http://localhost/gse/signin/complete, got http://localhost/gse/signin/complete...33%3A43Z0nMJGb
PHP-Code:
<?php
require_once $GLOBALS'config' ][ 'openid_path' ] . '/Consumer.php';
require_once 
$GLOBALS'config' ][ 'openid_path' ] . '/FileStore.php';
require_once 
$GLOBALS'config' ][ 'openid_path' ] . '/SReg.php';

class 
signin_controller extends controller
{
  private 
$consumer;

  public function 
__constructrequest $requestresponse $response )
  {
    
$store = new Auth_OpenID_FileStorertrimBASE_PATH'/' ) . '/.oid_store' );
    
$this->consumer = new Auth_OpenID_Consumer$store );

    
parent::__construct$request$response );
  }

  public function 
main()
  {
    if ( isset( 
$_SESSION'openid_auth' ] ) && $_SESSION'openid_auth' ] !== false )
    {
      
header'Location: ' rtrimBASE_URL'/' ) . '/' );
    }

    
$view = new html_view(  $this->get_request() );

    if ( isset( 
$_POST'identity' ] ) )
    {
      if ( empty( 
$_POST'identity' ] ) )
      {
        
$view->assign'err'$GLOBALS'webstring' ]->get'Please enter a valid OpenID' ) );
      }
      else
      {
        if ( !( 
$auth $this->consumer->begintrim$_POST'identity' ] ) ) ) )
        {
          
$view->assign'err'$GLOBALS'webstring' ]->get'Please enter a valid OpenID' ) );
        }
        else
        {
          if ( ( 
$sreg Auth_OpenID_SRegRequest::build( array( 'email' ), array( 'fullname''nickname''language' ) ) ) )
          {
            
$auth->addExtension$sreg );
          }

          if ( !empty( 
$_POST'linkback' ] ) && strpos$_POST'linkback' ], 'signin' ) === false )
          {
            
$_SESSION'linkback' ] = $_POST'linkback' ];
          }

          if ( 
$auth->shouldSendRedirect() )
          {
            
$url $auth->redirectURL$this->get_trustroot(), $this->get_returnto() );

            if ( 
Auth_OpenID::isFailure$url ) )
            {
              
$view->assign'err'$GLOBALS'webstring' ]->get$url->message ) );
            }
            else
            {
              
header'Location: ' $url );
            }
          }
          else
          {
            
$form_id 'openid_message';
            
$form_html $auth->htmlMarkup(
              
$this->get_trustroot(),
              
$this->get_returnto(),
              
false,
              array( 
'id' => $form_id )
            );

            if ( 
Auth_OpenID::isFailure$form_html ) )
            {
              
$view->assign'err'$GLOBALS'webstring' ]->get$form_html->message ) );
            }
            else
            {
              print 
$form_html;
            }
          }
        }
      }
    }

    
$html $view->display'signin.tpl' );
    
$this->base_view->assign'content'$html );
    
$this->get_response()->set_body$this->base_view->display'www_base.tpl' ) );
  }

  public function 
complete()
  {
    
$response $this->consumer->complete$this->get_returnto() );

    if ( 
$response->status == Auth_OpenID_SUCCESS )
    {
      
$_SESSION'openid_auth' ] = true;

      
$sreg = new Auth_OpenID_SRegResponse();
      
$obj $sreg->fromSuccessResponse$response );
      
$data $obj->contents();

      if ( !
$this->model->check_user_exists$data'email' ] ) )
      {
        
$this->model->insert_user$data );
      }

      
$this->model->do_user_updates$data );

      if ( @
$data'language' ] )
      {
        
$_SESSION'user' ]->set_language$data'language' ] );
      }
    }

    
$linkback 'http://' $_SERVER'HTTP_HOST' ] . '/' trimBASE_URL'/' );
    if ( isset( 
$_SESSION'linkback' ] ) && !empty( $_SESSION'linkback' ] ) )
    {
      
$linkback $_SESSION'linkback' ];
      unset( 
$_SESSION'linkback' ] );
    }

    if ( ( isset( 
$_SESSION'openid_auth' ] ) && $_SESSION'openid_auth' ] !== false ) || $response->status == Auth_OpenID_CANCEL )
    {
      
header'Location: ' $linkback );
    }

    
$view = new html_view(  $this->get_request() );
    
$view->assign'err'$GLOBALS'webstring' ]->get$response->message ) );

    
$html $view->display'signin.tpl' );
    
$this->base_view->assign'content'$html );
    
$this->get_response()->set_body$this->base_view->display'www_base.tpl' ) );
  }

  private function 
get_scheme()
  {
    
$scheme 'http';
    if ( isset( 
$_SERVER'HTTPS' ] ) && $_SERVER'HTTPS' ] == 'on' )
    {
      
$scheme .= 's';
    }

    return 
$scheme;
  }

  private function 
get_trustroot()
  {
    return 
sprintf(
      
'%s://%s:%s%s/',
      
$this->get_scheme(),
      
$_SERVER'SERVER_NAME' ],
      
$_SERVER'SERVER_PORT' ],
      
rtrimBASE_URL'/' )
    );
  }

  private function 
get_returnto()
  {
    return 
sprintf'%s/signin/complete'rtrim$this->get_trustroot(), '/' ) );
  }
}
Das hier allerdings ist abgekapselt von meinem MVC und funktioniert komischerweise:
PHP-Code:
/**/
// complete.php
/**/
<?php
require_once 'Auth_OpenID/OpenID/Consumer.php';
require_once 
'Auth_OpenID/OpenID/FileStore.php';
require_once 
'Auth_OpenID/OpenID/SReg.php';

$store = new Auth_OpenID_FileStore'./oid_store' );
$consumer = new Auth_OpenID_Consumer$store );
$response $consumer->complete'http://localhost/complete.php' );

if ( 
$response->status == Auth_OpenID_SUCCESS )
{
  
$_SESSION'openid_auth' ] = true;

  
$sreg = new Auth_OpenID_SRegResponse();
  
$obj $sreg->fromSuccessResponse$response );
  
$data $obj->contents();
  
var_dump$data );
}
else echo 
$response->message;
?>



/**/
// index.php
/**/

<?php
require_once 'Auth_OpenID/OpenID/Consumer.php';
require_once 
'Auth_OpenID/OpenID/FileStore.php';
require_once 
'Auth_OpenID/OpenID/SReg.php';

if ( isset( 
$_POST'identity' ] ) )
{
  
$store = new Auth_OpenID_FileStore'./oid_store' );
  
$consumer = new Auth_OpenID_Consumer$store );

  if ( empty( 
$_POST'identity' ] ) ) $err 'Please enter a valid OpenID';
  else
  {
    if ( !( 
$auth $consumer->begintrim$_POST'identity' ] ) ) ) ) $err 'Please enter a valid OpenID';
    else
    {
      if ( ( 
$sreg Auth_OpenID_SRegRequest::build( array( 'email' ), array( 'fullname''nickname''language' ) ) ) )
        
$auth->addExtension$sreg );

      
$url $auth->redirectURL'http://localhost/''http://localhost/complete.php' );
      
header'Location: ' $url );
    }
  }
}
?>
<?php 
if ( isset( $err ) ): ?>
<div><?=$err?></div>
<?php endif; ?>
<form method="post">
  <label for="signin-identity-b">OpenID Identity:</label><br />
  <input type="text" name="identity" id="signin-identity-b" />
  <input type="submit" name="signin" value="Sign in" />
</form>
Ich sehe einfach keinen Fehler und verstehe nicht, weshalb er mir diesen Fehler ausspuckt...

Viele Grüße
Danny.

Geändert von WasserDragoon (22.07.2011 um 14:23 Uhr).
WasserDragoon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.07.2011, 11:42  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Naja - Die URLs scheinen doch unterschiedlich zu sein...
xm22 ist offline   Mit Zitat antworten
Alt 22.07.2011, 11:43  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard

Ja muss auch. Hab das ja unabhängig voneinander getestet
WasserDragoon ist offline   Mit Zitat antworten
Alt 22.07.2011, 21:58  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard

Das Problem ist, dass der Parameter, den ich der complete-Funktion übergebe irgendwie falsch ist bzw nicht mit dem aus $_GET übereinstimmt...

ein
PHP-Code:
<?php
echo $this->get_returnto() . "\n";
var_dump$_GET );
return;
in der complete-Funktion meines Controllers bringt mir folgende Ausgabe:
Zitat:
http://localhost:80/gse/signin/complete
array(17) {
...
["openid_return_to"]=>
string(80) "http://localhost:80/gse/signin/complete?janrain_nonce=2011-07-22T19:53:06Z06KCeA"
...
}
Ich bekomme also vom OpenID Provider den falschen openid_return_to Parameter übermittelt, verstehe aber nicht wieso?!

EDIT: Ich habe das Gefühl, dass die Bibliothek Probleme mit meinen Rewrite-URLs hat. Sobald ich nämlich mal eine separate PHP-Datei angebe ala http://localhost/gse/complete.php funktioniert das Ganze auch einwandfrei... Am Code hab ich von der Logik her ja garnix geändert, lediglich die URL mit der die Lib nich klar kommt...

Geändert von WasserDragoon (25.07.2011 um 20:42 Uhr).
WasserDragoon ist offline   Mit Zitat antworten
Alt 25.07.2011, 20:54  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard

Okay hat sich erledigt, es liegt an der Bibliothek:
https://github.com/openid/php-openid/issues/37
WasserDragoon ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
EditorMod 2nd Edition Manko10 Off-Topic Diskussionen 87 14.08.2011 20:01
DI-Container xm22 Software-Design 44 07.08.2011 18:03
[Erledigt] Generelle Funktion für GET POST sinnvoll? hausl PHP Einsteiger 81 04.06.2011 21:31
Problem mit phpmyadmin php10 Server, Hosting und Workstations 17 11.11.2010 19:58
OpenID und XAMPP nanatsusaia PHP Tipps 2009 2 20.11.2009 13:21
JS-Kalender funktioniert nicht im IE8 ToxicToast JavaScript, Ajax und mehr 4 18.11.2009 16:26
Fehler beim kompilieren von php 5.2.9 malio Server, Hosting und Workstations 11 05.06.2009 18:40
Bilder an bestimmten Tagen anzeigen Eclipse16V PHP Tipps 2009 12 15.04.2009 15:28
Prototype Ajax Array Datenmüll notyyy HTML, Usability und Barrierefreiheit 2 08.04.2008 10:57
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
[Erledigt] Datenbank nicht erreichbar PHP Tipps 2005-2 27 19.08.2005 12:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
return_to does not match return url, janrain hilfe deutsch, jainrain falsche return_to url openid, \return_to does not match return url\, janrain php bugs, return php url, php-openid return_to does not match return url, openid janrain bibilothek filestore, php openid return_to does not match return url, return_to does not match return url janrain_nonce google, php does not match, openid library by janrain return_to does not match return url, janrain return_to, htmlmarkup openid, janrain php return_to, janrain openid expected return url not match, php openid expected return_to not match janrain_nonce, janrain, openid php beispiel janrain, php openid 2.0 consumer

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum