技术问题【php】

10 views
Skip to first unread message

nickyhu

unread,
Nov 1, 2007, 1:43:14 AM11/1/07
to Openid中文

通过openid验证后,返回的url包含了openid的各种信息,我程序用的php,是不是通过$_get[]函数就能获取url中的信息?

Sutra Zhou

unread,
Nov 1, 2007, 1:54:44 AM11/1/07
to open...@googlegroups.com
你没有使用openid的php类库,而是自己实现的?

在07-11-1,nickyhu <haobl...@gmail.com> 写道:

nickyhu

unread,
Nov 1, 2007, 10:12:48 PM11/1/07
to Openid中文
用了这个http://www.phpclasses.org/browse/package/3290.html类,但只是提供验证,返回过来的
url还是要自己来处理的。

我通过$_get函数获取似乎有些问题,取不到。

On Nov 1, 1:54 pm, "Sutra Zhou" <zhoushu...@gmail.com> wrote:
> 你没有使用openid的php类库,而是自己实现的?
>
> 在07-11-1,nickyhu <haoblog...@gmail.com> 写道:

Sutra Zhou

unread,
Nov 1, 2007, 11:12:32 PM11/1/07
to open...@googlegroups.com
我对这个类库没有了解,不过我刚去看了一下:
	STEP 2)
Once user gets returned we must validate signature
:: VALIDATE REQUEST ::
true|false = $openid->ValidateWithServer();

ERRORS:
array = $openid->GetError(); // Get latest Error code

FIELDS:
OpenID allowes you to retreive a profile. To set what fields you'd like to get use (accepts either string or array):
$openid->SetRequiredFields(array('email','fullname','dob','gender','postcode','country','language','timezone'));
or
$openid->SetOptionalFields('postcode');
这个第二步应该正是你想做的。

根据文档所述,你不需要自己去解析返回的url,
而应使用里面提供的Get方法。
比如,
function GetIdentity(){ 	// Get Identity

在07-11-2,nickyhu <haobl...@gmail.com> 写道:
用了这个 http://www.phpclasses.org/browse/package/3290.html 类,但只是提供验证,返回过来的

Sutra Zhou

unread,
Nov 1, 2007, 11:24:12 PM11/1/07
to open...@googlegroups.com
 $openid_validation_result = $openid-> ValidateWithServer();
之后应该可以通过
$_GET['openid_mode']这种方式取得email等字段。

在07-11-2,Sutra Zhou <zhous...@gmail.com> 写道:

nickyhu

unread,
Nov 3, 2007, 12:23:08 AM11/3/07
to Openid中文
其实openid验证通过后,返回如下的url:

http://www.xinmimi.com/openid/r.php?openid.assoc_handle=%7BHMAC-SHA1%7D%7B472bf752%7D%7BnRsaNg%3D%3D%7D&openid.identity=http%3A%2F%2Fnickyhu.myopenid.com&openid.mode=id_res&openid.op_endpoint=http%3A%2F%2Fwww.myopenid.com%2Fserver&openid.response_nonce=2007-11-03T04%3A21%3A37ZH0OT6e&openid.return_to=http%3A%2F%2Fwww.xinmimi.com%2Fopenid%2Fr.php&openid.sig=TC6ZWECx5pCbCjG7Jtj1FFcZdbE%3D&openid.signed=assoc_handle%2Cidentity%2Cmode%2Cop_endpoint%2Cresponse_nonce%2Creturn_to%2Csigned

通过这段url可以获取相关信息。

问题就是通过$_get函数获取有问题。是语法错误,还是另有套路?

菜鸟真是迷茫了。

On Nov 2, 11:24 am, "Sutra Zhou" <zhoushu...@gmail.com> wrote:
> $openid_validation_result = $openid->ValidateWithServer();
> 之后应该可以通过$_GET['openid_mode']这种方式取得email等字段。
>

> 在07-11-2,Sutra Zhou <zhoushu...@gmail.com> 写道:


>
>
>
> > 我对这个类库没有了解,不过我刚去看了一下:
>
> > STEP 2)
> > Once user gets returned we must validate signature
> > :: VALIDATE REQUEST ::
> > true|false = $openid->ValidateWithServer();
>
> > ERRORS:
> > array = $openid->GetError(); // Get latest Error code
>
> > FIELDS:
> > OpenID allowes you to retreive a profile. To set what fields you'd like to get use (accepts either string or array):
> > $openid->SetRequiredFields(array('email','fullname','dob','gender','postcode','country','language','timezone'));
>
> > or
> > $openid->SetOptionalFields('postcode');
>
> > 这个第二步应该正是你想做的。
>
> > 根据文档所述,你不需要自己去解析返回的url,
> > 而应使用里面提供的Get方法。
> > 比如,
>
> > function GetIdentity(){ // Get Identity
>

> > 在07-11-2,nickyhu <haoblog...@gmail.com> 写道:
>
> > > 用了这个http://www.phpclasses.org/browse/package/3290.html类,但只是提供验证,返回过来的

nickyhu

unread,
Nov 5, 2007, 10:31:39 PM11/5/07
to Openid中文
问题已经解决,可以是openid登录了:
http://www.xinmimi.com/openid/openid.php

On Nov 3, 12:23 pm, nickyhu <haoblog...@gmail.com> wrote:
> 其实openid验证通过后,返回如下的url:
>
> http://www.xinmimi.com/openid/r.php?openid.assoc_handle=%7BHMAC-SHA1%...

Sutra Zhou

unread,
Nov 5, 2007, 10:36:21 PM11/5/07
to open...@googlegroups.com
不说说是什么问题造成的?

在07-11-6,nickyhu <haobl...@gmail.com> 写道:

♨Sutra

unread,
Dec 29, 2007, 5:03:29 AM12/29/07
to Openid中文
我发现这个不支持https协议,比如: https://sutra.pip.verisignlabs.com/ 就会报:
ERROR CODE: OPENID_NOSERVERSFOUND
ERROR DESCRIPTION: Cannot find OpenID Server TAG on Identity page.

我现在改用JanRain PHP(http://openidenabled.com/php-openid/),不过也发现了个
bug(http://trac.openidenabled.com/trac/ticket/95

On 11月6日, 上午11时36分, "Sutra Zhou" <zhoushu...@gmail.com> wrote:
> 不说说是什么问题造成的?
>
> 在07-11-6,nickyhu <haoblog...@gmail.com> 写道:
Reply all
Reply to author
Forward
0 new messages