function plugin_openid_finish_auth($consumer) { global $vars, $_openid_msg; $die_message = PLUS_PROTECT_MODE ? 'die_msg' : 'die_message'; $obj_verify = new auth_openid_plus_verify(); $session_verify = $obj_verify->auth_session_get(); //$session_verify['server_url'] //$session_verify['local_id'] $page = empty($session_verify['page']) ? '' : rawurldecode($session_verify['page']); $author = empty($session_verify['author']) ? '' : rawurldecode($session_verify['author']); $obj_verify->auth_session_unset(); $return_to = get_page_location_uri($page); $response = $consumer->complete($return_to); /* echo '<pre>'; var_dump($response); die(); */ switch ($response->status) { case Auth_OpenID_CANCEL: $die_message($_openid_msg['err_cancel']); case Auth_OpenID_FAILURE: $die_message($_openid_msg['err_failure'] . $response->message); case Auth_OpenID_SUCCESS: $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); $sreg = $sreg_resp->contents(); // $sreg['email'], $sreg['nickname'], $sreg['fullname'] if (!isset($sreg['nickname'])) { if (PLUGIN_OPENID_NO_NICKNAME) { $sreg['nickname'] = 'anonymouse'; } else { $die_message($_openid_msg['err_nickname']); } } $obj = new auth_openid_plus(); $obj->response = $sreg; // その他の項目を引き渡す $obj->response['author'] = $author; $obj->response['local_id'] = !empty($response->endpoint->local_id) ? $response->endpoint->local_id : $response->endpoint->claimed_id; $obj->response['identity_url'] = $response->getDisplayIdentifier(); $obj->auth_session_put(); break; } // オリジナルの画面に戻る header('Location: ' . get_page_location_uri($page)); }