gpt4 book ai didi

php - 使用... openid 获取gmail 地址?授权?

转载 作者:可可西里 更新时间:2023-11-01 13:36:45 25 4
gpt4 key购买 nike

我越来越困惑了。

我能够使用 LightOpenID 使 openid 登录有点工作.

我所做的只是一个 openid_identity,例如“https://www.google.com/accounts/o8/id?id=xxx”。非常令人失望:我也希望得到电子邮件地址。

我需要登录(这就是 openid 所做的)以了解用户用于登录的 google 帐户的电子邮件地址。

有函数 $openid->getAttributes() 但我从中得到的只是一个空数组:我猜谷歌不会给我任何东西 openid_identity.

所以我猜想我应该使用OAuth,对吧?我对此一无所知。我只发现可怕和困惑的文档,要么假装解释一切(我的意思是一切),要么无法解释< em>任何

是的,当然我已经尝试查看之前关于此的帖子,就像我在 google 上搜索一样。请再读一遍上面的段落。

最佳答案

我刚刚发现了 LightOpenID,我觉得它很棒。我通过对 example-gmail.php 进行以下修改,设法获取了电子邮件地址、名字和姓氏以及首选语言:

<?php

require_once('openid.php');

if (empty($_GET['openid_mode']))
{
if (isset($_GET['login']))
{
$openid = new LightOpenID();
$openid->identity = 'https://www.google.com/accounts/o8/id';
$openid->required = array('namePerson/first', 'namePerson/last', 'contact/email', 'pref/language');

header('Location: ' . $openid->authUrl());
//header('Location: ' . str_replace('&amp;', '&', $openid->authUrl()));
}

else
{
echo '<form action="?login" method="post">' . "\n";
echo '<button>Login with Google</button>' . "\n";
echo '</form>' . "\n";
}
}

else if ($_GET['openid_mode'] == 'cancel')
{
echo 'User has canceled authentication!';
}

else
{
$openid = new LightOpenID();

echo 'User ' . ($openid->validate() ? $_GET['openid_identity'] . ' has ' : 'has not ') . 'logged in.';

echo '<pre>';
print_r($openid->getAttributes());
echo '</pre>';
}

?>

我更改了代码以使其更具可读性,输出:

User https://www.google.com/accounts/o8/id?id=*** has logged in.

Array
(
[namePerson/first] => Alix
[contact/email] => ***@gmail.com
[pref/language] => en
[namePerson/last] => Axel
)

我仍然无法从 Google 获取邮政编码和其他信息,但我已成功使用 myOpenID.com

关于php - 使用... openid 获取gmail 地址?授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com