用phpMyID建自己的OpenID服务器
OpenID是一个URL形 式的通行证,由OpenID服务提供商提供的一个开放的,可以在整个网络使用超级通行证。 phpMyID是一个简单的非常轻量级的OpenID Server的应用,而且是开源的PHP代码,很适合建立个人的OpenID Server,修改一下也可以实现多人使用。
安装
-
到phpMyID下载代码,现在版本BETA v0.5。解压缩后关键文件就2个,一个MyID.php,一个MyID.config.php
-
上传2个文件到服务器就可以使用了,默认用户名和密码都为test。
设置
MyID.php为主文件,包含全部功能,MyID.config.php定义了一些个人信息变量,然后调用MyID.php,可以根据情况来使用不同文 件。
-
单用户
-
可以只使用MyID.php文件,修改其中的$profile 下面的登录信息和$sreg下面的个人信息。
-
或者使用MyID.config.php,做同样修改,好处就是如果升级MyID.php主文件,只需下载覆盖MyID.php,不用再一次修改个人信 息。
-
-
多用户
-
复制多个MyID.config.php文件分别改名成不同文件如:用户1.config.php, 用户2.config.php并修改其中信息。
-
多个用用户调用时,调用其自己的 用户.config.php
-
-
设置用户信息
要更改登录信息,修改MyID.config.php或MyID.php 找到$profile 下面:
’auth_username’ => ‘test’, ’auth_password’ =>’37fa04faebe5249023ed1f6cc867329b’
用户名改称你想要的名字,密码有一点麻烦,它是按照MD5加密username:realm:password设定的
-
username为你改的用户名
-
realm默认为phpMyID,可以上传程序运行一次默认设置看其endpoint的输出中Realm的值。
Server: http://myid.bpdig.com/index.php Realm: phpMyID
-
password为你的密码
例如如果我修要修改:
-
用户名为:test
-
realm为:phpMyID
-
密码为:test
就需要把test:phpMyID:test用MD5加密:
Linux下输入:
$ echo -n 'test:phpMyID:test' | openssl md5
windows下输入:(md5 Utility可以在这里下载):
md5.exe -d"test:phpMyID:test"
到结果37fa04faebe5249023ed1f6cc867329b 填写到’auth_password’ =>’37fa04faebe5249023ed1f6cc867329b’
$sreg的个人信息:
-
‘nickname’ ⇒ ‘Joe’, 昵称
-
‘email’ ⇒ ‘joe@example.com’, Email地址RFC2822
-
‘fullname’ ⇒ ‘Joe Example’, 全名
-
‘dob’ ⇒ ‘1970-10-31′, 生日
-
‘gender’ ⇒ ‘M’, 性别
-
‘postcode’ ⇒ ‘22000′, 邮编
-
‘country’ ⇒ ‘US’, 国家 ISO3166
-
‘language’ ⇒ ‘en’, 语言 ISO639
-
‘timezone’ ⇒ ‘America/New_York’ 时区 TimeZone database
其中Email地址,国家,语言需要按照ISO标准来些,时区需要按照ASCII string TimeZone database。
使用
以上都做好,这个OpenID服务器就可以使用了,此时你的OpenID为http://你的网站域名/MyID.php或 MyID.config.php或其他名字,以MyID.php为例:
-
在浏览器的地址中输入:http://你的网站域名/MyID.php可以查看服务器信息。
-
登录输入:http://你的网站域名/MyID.php?openid.mode=login
-
登出输入:http://你的网站域名/MyID.php?openid.mode=logout
查看页面源码你会发现在head标签里有这样两行
<link rel=”openid.server” href=”http://你的网站域名/MyID.php” /> <link rel=”openid.delegate” href=”http://你的网站域名/MyID.php” />
将这两行内容加在其他URL页面的head里,这个URL也可以当作你的一个OpenID
例如:在http://siege.org/ 首页的head中加入上面两行link
http://siege.org siege.org www.siege.org
都可以成为你的OpenID
-
在MyID.php中XML输出部分可以加入CSS样式。
-
加入方便登录和登出的按钮。
-
例如:http://myid.bpdig.com 更美观了吧。
测试
-
当建立好后,用你的OpenID登录一些支持OpenID的网站。
-
也可以到支持OPEN ID的博客用OpenID登录发表 一个评论,测试一下结果吧.
其他
安全问题需要提醒一下:最好使用OpenSSL加密保证密码安全。

暂无留言我要留言 »