() authUrl를 (호출하기 전에위임과 함께 OpenID를 사용할 때 야후는 다른 신원 URL을 반환합니다. <a href="http://gitorious.org/lightopenid" rel="nofollow">LightOpenID</a>으로 OpenID 기반 로그인 시스템을 구현하고 있습니다.
설정을), 및 검증 한 후 얻을 다음 documentation 다음, 내가 설정하고 사용자가 제공 한 정체성을 얻기 위해
$openid->identity
속성을 사용합니다.
그래서 나는 다음과 않는 : 나는 대표으로 시스템을 테스트 할 때
<?php
$openid = new OpenID;
if(!$openid->mode){
if(isset($_POST['openid'])){
// Auth required
$openid->identity = $_POST['openid'];
header('Location: ' . $this->authUrl());
exit;
}
}elseif($openid->mode == 'cancel'){
// Cancelled by user
}else{
if($this->validate()){
// Sucess
$user = $openid->identity;
}else{
// Error
}
}
(나는 그 기술 이름의 생각 : 나는 로그인 상자에 내 도메인 이름을 입력하고로 인증받을 타사 공급자) 결과 ID가 항상 처음에 입력 한 것이 아니며이 동작은 배후 공급자에 따라 달라집니다. 더 구체적으로 말하자면, http://example.com/
을 입력하면 야후는 항상 https://me.yahoo.com/XXXXXXXXXX#5ab6d
을 반환 할 것이며, XXXXXXXXXX
은 야후 사용자 이름입니다. 그 결과, 나는 안정적으로 반복되는 사용자를 식별 할 수 없습니다
["openid_claimed_id"] => string(37) "https://me.yahoo.com/XXXXXXXXXX#5ab6d"
["openid_identity"] => string(31) "https://me.yahoo.com/XXXXXXXXXX"
내 질문 : 그들이 공급자를 전환 자마자, 그들은 내 사이트에 자신의 계정 데이터를 잃게됩니다
- 이 문제인가 옳은?
- 내 코드가 잘못 되었나요?
(나는 오픈 ID가, esp는. 용어를 overcomplication하는 경향이 주위에 어떤 용어입니다. 모두를 오용하고있어 경우에 저를 수정하십시오.)
오, 내 ... 거기에 실제로 작동하는 단일 OpenID 공급자가 있는지 궁금합니다. (팁 주셔서 감사합니다 .BTW, 나머지 코드는 기본적으로 완료, 난 단지 이런 종류의 OpenID에 붙어 있어요 미묘. –