OpenID テストキット完全版 : ページ( 4 )

  戻ってきた情報を受け取る



return.php
<?
session_start();
// エラーメッセージを表示
ini_set( 'display_errors', "1" );

// エラーメッセージ対象のコード
require_once( 'return_control.php' );
?>



return_control.php
<?php
require_once "common.php";

// *********************************************************
// 基本オブジェクト作成
// *********************************************************
$store = new Auth_OpenID_FileStore($store_path);
log_file(print_r($store,true));
$consumer = new Auth_OpenID_Consumer($store);
log_file(print_r($consumer,true));

// *********************************************************
// 結果チェック
// *********************************************************
$error_message = "";
$response = $consumer->complete($return_to);
log_file(print_r($response,true));

if ($response->status == Auth_OpenID_CANCEL) {
	$error_message = 'キャンセルされました';
}
if ($response->status == Auth_OpenID_FAILURE) {
	$error_message = $response->message;
}
if ($response->status == Auth_OpenID_SUCCESS) {
	$start_message = "ログインされました";
	$_SESSION['id'] = $response->getDisplayIdentifier();

	$sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
	log_file(print_r($sreg_resp,true));

	$sreg = $sreg_resp->contents();
	log_file(print_r($sreg,true));

	if (@$sreg['nickname']) {
		$_SESSION['nickname'] = 
			mb_convert_encoding( $sreg['nickname'], "SHIFT_JIS", "UTF-8" );
	}

	$ax_resp = Auth_OpenID_AX_FetchResponse::fromSuccessResponse($response);
	if ( $ax_resp ) {
		$ax_data = $ax_resp->getExtensionArgs();
		log_file(print_r($ax_data,true));

		foreach($ax_data as $ax_key => $ax_value){
			// Google 用
			if ( $ax_value == 'http://axschema.org/contact/email' ) {
				$target_key = str_replace( "type.ext", "", $ax_key );
				$target_key = "value.ext" . $target_key . ".1";
				$_SESSION['email'] = $ax_data[$target_key];
			}
			// Yahoo 用
			if ( $ax_value == 'http://axschema.org/namePerson/friendly' ) {
				$target_key = str_replace( "type.ext", "", $ax_key );
				$target_key = "value.ext" . $target_key . ".1";
				$_SESSION['dispname'] = mb_convert_encoding( $ax_data[$target_key], "SHIFT_JIS", "UTF-8" );
			}

		}
	}

	log_file(print_r($_SESSION,true));

}

require_once "return_view.php";

?>



return_view.php
以下の画面は JavaScript によるリダイレクトで、index.php に移動します

<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=shift_jis" />
<TITLE>ログイン</TITLE>
<STYLE type="text/css">
* {
	font-size: 12px;
}
</STYLE>
</HEAD>
<BODY>

<A href="login.php?id=https%3A%2F%2Fmixi.jp"><IMG src="http://winofsql.jp/test/openid/openid_sample/login_btn002.gif" border=0></A>
<br>
<B><?= $error_message ?></B>

<? if ( $error_message == '' ) { ?>
<SCRIPT type="text/javascript">
	window.location = "index.php";
</SCRIPT>
<? } ?>
</BODY>
</HTML>
















   SQLの窓    create:2010/11/14  update:2015/11/02   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ