如何签署Google联合登录?

时间:2010-01-02 15:13:02

标签: authentication signature federated-identity

好的我在G'oogle的联合登录方面有更多的运气,我正处于从谷歌那里获得以下参数的地方。

[openid_ns] => http://specs.openid.net/auth/2.0
[openid_mode] => id_res
[openid_op_endpoint] => https://www.google.com/accounts/o8/ud
[openid_response_nonce] => 2010-01-02T14:58:22ZvP-t8tJXqGWaPw
[openid_return_to] => http://localhost/blablabla/index.php?c=google
[openid_assoc_handle] => AOQobUdTUUFVqQ9PeC9r19-rHOlEg_xvFmiIUahkmhNQ7Blrh14w2-eb
[openid_signed] => op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle,ns.ext1,ext1.mode,ext1.type.firstname,ext1.value.firstname,ext1.type.email,ext1.value.email,ext1.type.lastname,ext1.value.lastname
[openid_sig] => tUZtUtVcvOfrodpPEx4bItcxVME=
[openid_identity] => https://www.google.com/accounts/o8/id?id=xxxxxxxxxxxxxxxxxx
[openid_claimed_id] => https://www.google.com/accounts/o8/id?id=xxxxxxxxxxxxxxxxxx
[openid_ns_ext1] => http://openid.net/srv/ax/1.0
[openid_ext1_mode] => fetch_response
[openid_ext1_type_firstname] => http://axschema.org/namePerson/first
[openid_ext1_value_firstname] => myName
[openid_ext1_type_email] => http://axschema.org/contact/email
[openid_ext1_value_email] => user@gmail.com
[openid_ext1_type_lastname] => http://axschema.org/namePerson/last
[openid_ext1_value_lastname] => MySurname

我现在唯一需要做的就是签名和'如果我理解这一点google正在给我一个线索[openid_signed]

ie:将这些参数串在一起,然后从连接的strin中创建哈希,它应该等于 [openid_sig] => tUZtUtVcvOfrodpPEx4bItcxVME =

但我确信签名生成公式还有更多 - 有人知道它是什么,因为我无法在Google的文档中找到它吗?

2 个答案:

答案 0 :(得分:0)

你也可以使用JanRain的RPX-Now。它更简单,几乎允许所有OpenID提供商。 https://rpxnow.com/

答案 1 :(得分:0)

通过一些小的更改,Google联合登录是OpenID。不要在Google Federated Login的签名协议上查找文档,而是查找有关how to generate a signaturehow to verify the signature的信息。

即使您不想使用JanRain代码,您仍然可以通过查看代码获得这些问题的一些答案。例如,verify第1320行的/Auth/OpenID/Server.php函数似乎是用于验证签名的代码的开始位置。