2

我需要为我域上的用户提供 openid 服务。他们都有独特的子域,例如:abc.example.com,我希望他们使用 abc.example.com 作为他们的 openid 身份......

我读了这个 - https://www.myopenid.com/help#own%5Fdomain - 但它看起来像是(a)一个用户和(b)我需要有一个现有的 myopenid/类似帐户......

phpmyid 看起来不错,但似乎只适用于单个用户......我如何调整它以使其为每个拥有子域的人运行?或者我还能做什么?

4

1 回答 1

3

子域是最简单的部分。为此,您需要“通配符 DNS”,它实质上会创建此 DNS 记录:*.domain.com IN A 10.10.0.1分别用您的域和 IP 替换域和 IP。接下来,您需要设置任何网络服务器以在通配符域中读取(这通常在 apache 中像这样工作:ServerAlias *.domain.com但取决于网络服务器到网络服务器。

到最后一部分。phpMyID - 仅用于一个人的身份。不幸的是,这篇文章太小了,无法确切说明如何做到这一点。这些是可能需要实施的一些片段和更高层次的想法。

首先,您需要获取文件中的任何硬编码信息并将其移动到数据库(用户名、密码等),以便您可以更轻松地跟踪用户。您还将被迫仅使用所有会破坏 DNS 的用户名来跟踪用户名[A-Za-z0-9_]&,%,$,#,@,!, ,etc并且用户无法再访问提供程序。

您还需要知道正在访问的当前主机名是什么:

<?php
$hostname = $_SERVER['SERVER_NAME'];
$username = basename($hostname, ".domain.com"); // Replace .domain.com with your domain
?>

因此,现在您有了一个用户,您可以构建数据库调用以选择该用户信息 - 然后使用数据库中的动态用户数据更新“一个用户 phpMyID”的曾经硬编码的值,并且脚本应该继续它的快乐方式. 自从我查看 phpMyID 以来已经有一段时间了,但我认为这是它背后的大部分想法。

于 2010-07-01T11:57:18.843 回答