如何在我的网站应用中使用Google登录的清晰示例/文档

4
我维护一个用C++和JavaScript编写的旧网络应用程序。我被要求添加Facebook、Google和Twitter登录认证。
Facebook部分很顺利。我在Facebook的开发者网站上找到了一些简单的JavaScript代码,链接是http://developers.facebook.com/docs/reference/javascript/,我将它添加到我的登录页面中。然后我修改了C++登录cgi程序,使其能够识别来自Facebook的回调,并使用用户的电子邮件地址(已经存在于文件中)登录。
我卡在了Google那里。起初,我在Google网站上瞎搞,但我找不到任何简单的例子。我被引导到了libopkele C++库,但我找不到如何使用它的说明(我怀疑这不是我需要的)。然后我找到了一个叫做Google Friend Connect的东西,链接是http://code.google.com/apis/friendconnect/docs/code.html(不幸的是,它说它已经过时了)。它包含了一个漂亮的JavaScript示例,我将它放到了我的网站上。它提供了一个按钮,上面写着“登录”,当你点击它时,它会弹出一个窗口要求你输入你的电子邮件地址。你填写完毕后,它会显示“连接到您的IDP”,然后“重定向到您的IDP”,接着我的登录后页面就出现在弹出窗口中。
显然,我不想让它出现在他们点击“登录”按钮的原始窗口中。
以下是我从登录页面复制来的JavaScript代码:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/googleapis/0.0.4/googleapis.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/jsapi"></script>
<script type="text/javascript">
  google.load("identitytoolkit", "1", {packages: ["ac"], language:"en"});
</script>
<script type="text/javascript">
  $(function() {
    window.google.identitytoolkit.setConfig({
        developerKey: "<I put my developer key here>",
        companyName: "<I put my company name here>",
        callbackUrl: "http://www.mywebsite.com/cgi-bin/login.cgi",
        realm: "",
        userStatusUrl: "http://http://www.mywebsite.com/cgi-bin/loginstatus.cgi",
        loginUrl: "http://http://www.mywebsite.com/cgi-bin/login.cgi",
        signupUrl: "http://http://www.mywebsite.com/cgi-bin/login.cgi",
        homeUrl: "http://www.mywebsite.com",
        logoutUrl: "http://http://www.mywebsite.com/cgi-bin/logout.cgi",
        idps: ["Gmail", "GoogleApps", "Yahoo"],
        tryFederatedFirst: true,
        useCachedUserStatus: false
    });
    $("#navbar").accountChooser();
  });
</script>
<div id="navbar"></div>

我发现我的userStatusUrl从未被调用。回调URL已经被调用了,但我不确定该从中返回什么。似乎无论我返回什么都只会在页面上显示。我在某个地方看到了一个传递的参考文献,其中包含{"registered" : true}的json项,但那也没起作用(这是我从cgi脚本返回的确切文本):

Content-Type: application/json
Content-Length: 20

{"registered" : true}

任何帮助或对一个好的简单实现的指导都将不胜感激。(使用外部库的PHP脚本并不能提供太多帮助!)
2个回答

1

您有没有了解过谷歌的OpenID?

第三方网站和应用现在可以让访问者使用他们的Google用户帐户登录。基于OpenID标准的联合登录使用户无需为不同的网站设置单独的登录帐户,也使网站开发人员免于实施登录身份验证措施的任务。OpenID通过提供一个框架,使用户可以与OpenID提供商(如Google)建立帐户,并使用该帐户登录接受OpenID的任何网站。本页面介绍了如何集成谷歌的联合登录到网站或应用程序中。

https://developers.google.com/accounts/docs/OpenID


是的,那是我第一个去的地方。我找不到清晰的、可操作的示例来展示如何使用C++或JavaScript进行登录。 - Nikki Locke
最终,我使用了http://rpxnow.com,它提供了易于使用的登录方式,通过选择提供商,只需使用一个简单且详细记录的接口即可。 - Nikki Locke

0
最终,我使用了rpxnow.com,它提供了易于使用的登录方式,通过一个简单、易于理解的接口,可以选择多个提供商进行登录。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接