OpenID4Discuz! 让你的 Discuz! 论坛能使用 OpenID 登录

21 views
Skip to first unread message

Sutra Zhou

unread,
Nov 20, 2007, 11:23:15 AM11/20/07
to openid-cn abridged email subscribers
大家好,发个 OpenID 小插件:
我最近开发了一个小插件 OpenID4Discuz!。有需要的自取。目前还没实现无需注册就可登录发帖的功能,如果反应强烈就来实现,否则不浪费时间了。也没开讨论 maillist,大家有什么事就在这先说吧,说的人多了扰民的话我再新开。

之前在 discuz.net 上发布时有朋友担心修改了原来的 login.htm 说怕怕。我把 diff 贴出来(其实就增加了一个 OpenID URL 的输入框,并增加了一个切换 Radio box)

--- /home/sutra/Desktop/t/upload/templates/default/login.htm    2007-09-07 17:06:40.000000000 +0800
+++ /home/sutra/workspace/openid4discuz/templates/default/login.htm    2007-11-18 05:22:56.000000000 +0800
@@ -1,5 +1,23 @@
 {template header}
 <div id="nav"><a href="$indexname">$bbname</a> &raquo; {lang member_login}</div>
+
+<script type="text/javascript">
+function setOpenIdLogin(isOpenIdLogin) {
+    document.getElementById("username").style.display = (isOpenIdLogin ? "none" : "inline");
+    document.getElementById("openid_url").style.display = (isOpenIdLogin ? "inline" : "none");
+    document.getElementById("password").disabled = isOpenIdLogin;
+    document.getElementById ("password").style.backgroundColor = isOpenIdLogin ? '#eee' : '';
+    document.getElementById("questionid").disabled = isOpenIdLogin;
+    document.getElementById("answer").disabled = isOpenIdLogin;
+    document.getElementById("answer").style.backgroundColor = isOpenIdLogin ? '#eee' : '';
+   
+    if (isOpenIdLogin) {
+        document.getElementById("openid_url").focus();
+    } else {
+        document.getElementById("username").focus();
+    }
+}
+</script>
 
 <form method="post" name="login" action="logging.php?action=login&amp;">
 <input type="hidden" name="formhash" value="{FORMHASH}" />
@@ -22,11 +40,14 @@
         <!--{/if}-->
         <tr>
             <th onclick="document.login.username.focus();">
-                <label><input class="radio" type="radio" name="loginfield" value="username" tabindex="2" checked="checked" />{lang username}</label>
-                <label><input class="radio" type="radio" name="loginfield" value="uid" tabindex="3" />{lang uid}</label>
+                <label><input class="radio" type="radio" name="loginfield" value="username" tabindex="2" checked="checked" onchange="setOpenIdLogin(false)" />{lang username}</label>
+                <label><input class="radio" type="radio" name="loginfield" value="uid" tabindex="3" onchange="setOpenIdLogin(false)" />{lang uid}</label>
+                <label><input class="radio" type="radio" name="loginfield" value="openid" tabindex="3" onchange="setOpenIdLogin(true)" id="loginfield_openid" />OpenID</label>
             </th>
             <td>
-                <input type="text" id="username" name="username" size="25" maxlength="40" tabindex="4" />
+                <input type="text" id="username" name="username" size="25" maxlength="40" tabindex="4" />
+                <input type="text" id="openid_url" name="openid_url" size="25" tabindex="4"
+                    style="display:none; background: url(http://www.openid.net/login-bg.gif) no-repeat; background-position: 0 50%; padding-left: 18px;" />
                 <a href="$regname">{lang register_now}</a>
             </td>
         </tr>
@@ -93,8 +114,13 @@
 </div>
 </form>
 
-<script type="text/javascript">
-document.login.username.focus();
+<script type="text/javascript">
+setOpenIdLogin(document.getElementById("loginfield_openid").checked);
+if (document.getElementById("loginfield_openid").checked) {
+    document.login.openid_url.focus ();
+} else {
+    document.login.username.focus();
+}
 
 var mydate = new Date();
 var mytimestamp = parseInt(mydate.valueOf() / 1000);


OpenID4Discuz! 主页: http://openid4discuz.redv.com/

OpenID for Discuz!

该插件让你的 Discuz! 论坛能使用 OpenID 登录。

特性

  • 允许论坛已有帐号与 OpenID URL 建立一对一绑定,绑定后用户既可以用原有的用户名或者UID方式登录,也可以通过已绑定的 OpenID 来登录;
  • 允许修改或者解除帐号和 OpenID URL 之间的绑定;
  • 无需注册论坛帐号,即可通过 OpenID 直接登录论坛(计划中,如果本插件有人欢迎~~)。

兼容版本

  • 支持 Discuz! 6.0.0 GBK/UTF-8 版;
  • 其它版本可能也支持,但未经过测试。

安装

  1. 备份你的论坛的原始文件: templates/default/login.htm;
  2. 上传 openid.php,openid-install.php, plugins/openid/*, templates/default/*;
  3. 用管理员登录,在论坛的后台的"插件管理"里面导入: discuz_plugin_openid4discuz.txt;
  4. 通过 openid_install.php 添加表(表名是论坛表前缀_openid)到你的论坛数据库。

卸载

  1. 从备份中还原你的论坛的原始文件: templates/default/login.htm;
  2. 删除 openid.php,openid-install.php, plugins/openid/*, templates/default/*;
  3. 用管理员登录,在论坛的后台的"插件管理"里面删除唯一标识符为 openid4discuz 的插件;
  4. 删除表(表名是论坛表前缀_openid),不建议。

授权

  • OpenID4Discuz 采用 New BSD License 协议授权,详见下载包中的 LICENSE.txt。

下载

  1. 本地下载
Copyright © 2001-2007 Redv.com. All rights reserved.
Powered by ♨Sutra.

Sutra Zhou

unread,
Nov 20, 2007, 12:35:29 PM11/20/07
to open...@googlegroups.com
晕死刚才邮件发错地方了?怎么group里面不显示。
+                    style="display:none; background: url(http://www.openid.net/login-bg.gif ) no-repeat; background-position: 0 50%; padding-left: 18px;" />

Rory Ye

unread,
Nov 20, 2007, 8:16:15 PM11/20/07
to open...@googlegroups.com
好东西。支持一下。

在07-11-21,Sutra Zhou <zhous...@gmail.com> 写道:



--
My site:http://www.jdkcn.com

Zola

unread,
Nov 22, 2007, 3:47:45 AM11/22/07
to open...@googlegroups.com
好东西:)

Sutra Zhou

unread,
Nov 24, 2007, 11:31:22 AM11/24/07
to open...@googlegroups.com
今天增加了辅助注册功能。
如果有人用,欢迎通过邮件列表或者直接发邮件给我bug和feature需求等方面的反馈。

OpenID for Discuz!

该插件让你的 Discuz! 论坛能使用 OpenID 登录。
让用户更容易登入论坛,让你的论坛更方便、更人性。

特性

  • 允许论坛已有帐号与 OpenID URL 建立一对一绑定,绑定后用户既可用用户名、UID方式登录,也可用已绑定的 OpenID 登录;
  • 允许用户修改或者解除帐号和 OpenID URL 之间的绑定;
  • 用户使用 OpenID 登录时,如果该 OpenID 没有绑定任何论坛帐号,则辅助用户注册论坛帐号,并建立帐号与 OpenID 间的绑定;
  • 用 Cookie 保存用户选择的登录标识类型(用户名,UID, OpenID),方便下次登录;
  • 用 Cookie 保存用户输入的 OpenID URL,方便下次登录。

兼容版本

  • 支持 Discuz! 6.0.0 GBK/UTF-8 版;
  • 其它版本可能也支持,但未经过测试。

安装

  1. 备份你的论坛的原始文件: register.php,templates/default/login.htm、template/default/register.htm;
  1. 上传 openid.php,openid-install.php, plugins/openid/*, templates/default/*;
  2. 用管理员登录,在论坛的后台的"插件管理"里面导入: discuz_plugin_openid4discuz.txt;
  1. 通过 openid_install.php 添加两个表(表名是"论坛表前缀_openid","论坛表前缀_openid_sessions")到你的论坛数据库(如果同名表已存在,openid_install.php 脚本则不对数据库做任何修改)。

卸载

  1. 从备份中还原你的论坛的原始文件: register.php,templates/default/login.htm、template/default/register.htm;
  2. 删除 openid.php,openid-install.php, plugins/openid/*, templates/default/openid*(注意没有前缀openid的是原discuz的文件不要删除!);
  1. 用管理员登录,在论坛的后台的"插件管理"里面删除唯一标识符为 openid4discuz 的插件;
  1. 删除两个表(表名是"论坛表前缀_openid","论坛表前缀_openid_sessions")。 注意强烈建议不要删除表"论坛表前缀_openid",因为里面存了用户帐号和 OpenID 间的映射;表"论坛表前缀_openid_sessions"删掉无所谓。

授权

  • OpenID4Discuz 采用 New BSD License 协议授权,详见下载包中的 LICENSE.txt。

下载

  1. 本地下载
Copyright © 2001-2007 Redv.com. All rights reserved.
Powered by ♨Sutra.


在07-11-22,Zola <zuol...@gmail.com> 写道:
好东西:)



ch x

unread,
Nov 24, 2007, 9:33:35 PM11/24/07
to open...@googlegroups.com
超赞!!

在07-11-25,Sutra Zhou <zhous...@gmail.com> 写道:

ido

unread,
Dec 15, 2007, 2:00:22 AM12/15/07
to Openid中文
支持

On 11月21日, 上午12时23分, "Sutra Zhou" <zhoushu...@gmail.com> wrote:
> 大家好,发个 OpenID 小插件:
> 我最近开发了一个小插件
> OpenID4Discuz!。有需要的自取。目前还没实现无需注册就可登录发帖的功能,如果反应强烈就来实现,否则不浪费时间了。也没开讨论
> maillist,大家有什么事就在这先说吧,说的人多了扰民的话我再新开。
>
> 之前在 discuz.net 上发布时有朋友担心修改了原来的 login.htm 说怕怕。我把 diff 贴出来(其实就增加了一个 OpenID URL
> 的输入框,并增加了一个切换 Radio box)
>
> --- /home/sutra/Desktop/t/upload/templates/default/login.htm 2007-09-07
> 17:06:40.000000000 +0800
> +++ /home/sutra/workspace/openid4discuz/templates/default/login.htm
> 2007-11-18 05:22:56.000000000 +0800
> @@ -1,5 +1,23 @@
> {template header}
> <div id="nav"><a href="$indexname">$bbname</a> &raquo; {lang
> member_login}</div>
> +
> +<script type="text/javascript">
> +function setOpenIdLogin(isOpenIdLogin) {
> + document.getElementById("username").style.display = (isOpenIdLogin ?
> "none" : "inline");
> + document.getElementById("openid_url").style.display = (isOpenIdLogin ?
> "inline" : "none");
> + document.getElementById("password").disabled = isOpenIdLogin;
> + document.getElementById("password").style.backgroundColor =
> - 允许论坛已有帐号与 OpenID <http://openid.net.cn/> URL
> 建立一对一绑定,绑定后用户既可以用原有的用户名或者UID方式登录,也可以通过已绑定的 OpenID 来登录;
> - 允许修改或者解除帐号和 OpenID <http://openid.net.cn/> URL 之间的绑定;
> - 无需注册论坛帐号,即可通过 OpenID <http://openid.net.cn/>直接登录论坛(计划中,如果本插件有人欢迎~~)。
>
> 兼容版本
>
> - 支持 Discuz! <http://www.discuz.com/> 6.0.0 GBK/UTF-8 版;
> - 其它版本可能也支持,但未经过测试。
>
> 安装
>
> 1. 备份你的论坛的原始文件: templates/default/login.htm;
> 2. 上传 openid.php,openid-install.php, plugins/openid/*,
> templates/default/*;
> 3. 用管理员登录,在论坛的后台的"插件管理"里面导入: discuz_plugin_openid4discuz.txt;
> 4. 通过 openid_install.php 添加表(表名是论坛表前缀_openid)到你的论坛数据库。
>
> 卸载
>
> 1. 从备份中还原你的论坛的原始文件: templates/default/login.htm;
> 2. 删除 openid.php,openid-install.php, plugins/openid/*,
> templates/default/*;
> 3. 用管理员登录,在论坛的后台的"插件管理"里面删除唯一标识符为 openid4discuz 的插件;
> 4. 删除表(表名是论坛表前缀_openid),不建议。
>
> 授权
>
> - OpenID4Discuz 采用 New BSD
> License<http://openid4discuz.redv.com/LICENSE.txt>协议授权,详见下载包中的
> LICENSE.txt。
>
> 下载
>
> 1. 本地下载 <http://openid4discuz.redv.com/download/>
>
> Copyright (c) 2001-2007 Redv.com <http://redv.com/>. All rights reserved.
> *Powered by ♨Sutra <http://zhoushuqun.com/>.*

Sutra Zhou

unread,
Dec 24, 2007, 10:30:39 AM12/24/07
to open...@googlegroups.com
大家圣诞节快乐,

今天openid4discuz-2.0.0-alpha发布了。

该版本做了如下修改:
* 首页增加了OpenID登录框;
* 如果未登录就点击发贴或回帖出现的登录框也增加了OpenID登录选择;
* 更换了OpenID类库,这个类库可以支持https的openid identifier,也支持OpenID Authentication 2.0了,而且对PHP module `curl'的依赖也不是必需的了;
* 之所以版本号从1.0.0跨越到2.0.0是因为一来改变了OpenID类库,二来增加了对OpenID 2.0的支持。

要了解详情可以查看: http://openid4discuz.redv.com/
或者访问演示站点:http://openidchina.net/

在07-12-15,ido < iml...@gmail.com> 写道:
支持

On 11月21日, 上午12时23分, "Sutra Zhou" < zhoushu...@gmail.com> wrote:
> 大家好,发个 OpenID 小插件:
> 我最近开发了一个小插件
> OpenID4Discuz!。有需要的自取。目前还没实现无需注册就可登录发帖的功能,如果反应强烈就来实现,否则不浪费时间了。也没开讨论
> maillist,大家有什么事就在这先说吧,说的人多了扰民的话我再新开。
>
> 之前在 discuz.net 上发布时有朋友担心修改了原来的 login.htm 说怕怕。我把 diff 贴出来(其实就增加了一个 OpenID URL
> 的输入框,并增加了一个切换 Radio box)
>
> --- /home/sutra/Desktop/t/upload/templates/default/login.htm    2007-09-07
> 17:06:40.000000000 +0800
> +++ /home/sutra/workspace/openid4discuz/templates/default/login.htm
> 2007-11-18 05:22:56.000000000 +0800
> @@ -1,5 +1,23 @@
>  {template header}
>  <div id="nav"><a href="$indexname">$bbname</a> &raquo; {lang
> member_login}</div>
> +
> +<script type="text/javascript">
> +function setOpenIdLogin(isOpenIdLogin) {
> +    document.getElementById("username").style.display = (isOpenIdLogin ?
> "none" : "inline");
> +    document.getElementById("openid_url").style.display = (isOpenIdLogin ?
> "inline" : "none");
> +    document.getElementById ("password").disabled = isOpenIdLogin;

> +    document.getElementById("password").style.backgroundColor =
> isOpenIdLogin ? '#eee' : '';
> +    document.getElementById ("questionid").disabled = isOpenIdLogin;
> +                    style="display:none; background: url( http://www.openid.net/login-bg.gif) no-repeat; background-position: 0 50%;

ido

unread,
Dec 25, 2007, 12:19:51 PM12/25/07
to Openid中文
OpenID Board 提示信息

OpenID authentication failed: No matching endpoint found after
discovering https://ido.pip.verisignlabs.com/

如果您的浏览器没有自动跳转,请点击这里

首页直接登录 第一次出现上面这个 第二次登陆才正常

On 12月24日, 下午11时30分, "Sutra Zhou" <zhoushu...@gmail.com> wrote:
> 大家圣诞节快乐,
>
> 今天openid4discuz-2.0.0-alpha发布了。
>
> 该版本做了如下修改:
> * 首页增加了OpenID登录框;
> * 如果未登录就点击发贴或回帖出现的登录框也增加了OpenID登录选择;
> * 更换了OpenID类库,这个类库可以支持https的openid identifier,也支持OpenID Authentication
> 2.0了,而且对PHP
> module `curl'的依赖也不是必需的了;
> * 之所以版本号从1.0.0跨越到2.0.0是因为一来改变了OpenID类库,二来增加了对OpenID 2.0的支持。
>
> 要了解详情可以查看:http://openid4discuz.redv.com/
> 或者访问演示站点:http://openidchina.net/
>
> 在07-12-15,ido <imli...@gmail.com> 写道:
> > > + document.getElementById("password").disabled = isOpenIdLogin;
> > > + document.getElementById("password").style.backgroundColor =
> > > isOpenIdLogin ? '#eee' : '';
> > > + document.getElementById("questionid").disabled = isOpenIdLogin;

Sutra Zhou

unread,
Dec 25, 2007, 12:38:00 PM12/25/07
to open...@googlegroups.com
这个问题我测试的时候就发现了,对于verisign provider总是奇偶性的。
用那个类库http://openidenabled.com/php-openid/ 里面提供的例子测试 http://openidchina.net/plugins/openid/php-openid-2.0.0/examples/consumer/ 也是同样的问题。
挺怪的~

在07-12-26,ido <iml...@gmail.com > 写道:
> > > +    document.getElementById ("username").style.display = (isOpenIdLogin
> > >  var mytimestamp = parseInt( mydate.valueOf() / 1000);
Message has been deleted

opiater

unread,
Dec 30, 2007, 1:02:51 PM12/30/07
to Openid中文
好消息!希望将来可以直接弃用论坛的帐号,直接都用openID来进行各种操作

Sutra Zhou wrote:
> 大家好,发个 OpenID 小插件:
> 我最近开发了一个小插件
> OpenID4Discuz!。有需要的自取。目前还没实现无需注册就可登录发帖的功能,如果反应强烈就来实现,否则不浪费时间了。也没开讨论
> maillist,大家有什么事就在这先说吧,说的人多了扰民的话我再新开。
>
> 之前在 discuz.net 上发布时有朋友担心修改了原来的 login.htm 说怕怕。我把 diff 贴出来(其实就增加了一个 OpenID URL
> 的输入框,并增加了一个切换 Radio box)
>
> --- /home/sutra/Desktop/t/upload/templates/default/login.htm 2007-09-07
> 17:06:40.000000000 +0800
> +++ /home/sutra/workspace/openid4discuz/templates/default/login.htm
> 2007-11-18 05:22:56.000000000 +0800
> @@ -1,5 +1,23 @@
> {template header}
> <div id="nav"><a href="$indexname">$bbname</a> &raquo; {lang
> member_login}</div>
> +
> +<script type="text/javascript">
> +function setOpenIdLogin(isOpenIdLogin) {
> + document.getElementById("username").style.display = (isOpenIdLogin ?
> "none" : "inline");
> + document.getElementById("openid_url").style.display = (isOpenIdLogin ?
> "inline" : "none");
> + document.getElementById("password").disabled = isOpenIdLogin;
> + document.getElementById("password").style.backgroundColor =
> - 允许论坛已有帐号与 OpenID <http://openid.net.cn/> URL
> 建立一对一绑定,绑定后用户既可以用原有的用户名或者UID方式登录,也可以通过已绑定的 OpenID 来登录;
> - 允许修改或者解除帐号和 OpenID <http://openid.net.cn/> URL 之间的绑定;
> - 无需注册论坛帐号,即可通过 OpenID <http://openid.net.cn/>直接登录论坛(计划中,如果本插件有人欢迎~~)。
>
> 兼容版本
>
> - 支持 Discuz! <http://www.discuz.com/> 6.0.0 GBK/UTF-8 版;
> - 其它版本可能也支持,但未经过测试。
>
> 安装
>
> 1. 备份你的论坛的原始文件: templates/default/login.htm;
> 2. 上传 openid.php,openid-install.php, plugins/openid/*,
> templates/default/*;
> 3. 用管理员登录,在论坛的后台的"插件管理"里面导入: discuz_plugin_openid4discuz.txt;
> 4. 通过 openid_install.php 添加表(表名是论坛表前缀_openid)到你的论坛数据库。
>
> 卸载
>
> 1. 从备份中还原你的论坛的原始文件: templates/default/login.htm;
> 2. 删除 openid.php,openid-install.php, plugins/openid/*,
> templates/default/*;
> 3. 用管理员登录,在论坛的后台的"插件管理"里面删除唯一标识符为 openid4discuz 的插件;
> 4. 删除表(表名是论坛表前缀_openid),不建议。
>
> 授权
>
> - OpenID4Discuz 采用 New BSD

Sutra Zhou

unread,
Jan 12, 2008, 6:13:22 PM1/12/08
to open...@googlegroups.com
很高兴地告诉大家,OpenID4Discuz 2.2.0发布了,这次主要增加了自动注册论坛账号的功能,现在新用户进去不需要再注册账号了,直接拿OpenID登录。欢迎有需要的使用,并给我反馈和意见。

修改如下:

2.2.0
* 新增特性:允许论坛管理员配置使用自动注册(推荐)或是用户选择绑定的方式来处理新OpenID登录的情况。

2.1.0
* 新增特性:当用户使用一个尚未和任何论坛账号绑定时,允许用户选择和已有账号绑定或是注册一个新账号来绑定。

2.0.0

* 首页增加了OpenID登录框;
* 如果未登录就点击发贴或回帖出现的登录框也增加了OpenID登录选择;
* 更换了OpenID类库,这个类库可以支持https的openid identifier,也支持OpenID Authentication 2.0了,
而且对PHP module `curl'的依赖也不是必需的了;
* 之所以版本号从1.0.0跨越到2.0.0是因为一来改变了OpenID类库,二来增加了对OpenID 2.0的支持。

在07-12-31,opiater <puy...@gmail.com> 写道:

Zola™

unread,
Apr 30, 2008, 4:21:20 AM4/30/08
to open...@googlegroups.com
Hi, Sutra Zhou
最近康盛创想发布了Ucenter 和Ucenter Home,Ucenter home(UCH)和Discuz之间共用用户数据,我看到你弄好http://openid4discuz.redv.com/  ,我看到詹膑弄了一个http://www.qeeyu.com/  周永德弄了一个 http://xying.org/     我出弄了一个https://zuo.la/ 我想给UCH加一个openid登录,你了解UCH吗? 能不能弄一个openid4uch?

现在用UCH建立SNS简易社区似乎越来越容易了,也许大家都烦了在各个基于UCH的社区注册了,OPENID能让人们省掉这个麻烦。


http://u.discuz.net/help/index.php?view=%5B5%5D%20UCenter%20Home%20%D3%EB%20UCenter%20%B5%C4%B2%FA%C6%B7%B9%D8%CF%B5%CB%B5%C3%F7

周 树群

unread,
Apr 30, 2008, 10:17:18 AM4/30/08
to open...@googlegroups.com
不知道UCH有没有支持OpenID的计划,UCH我还没有玩过。

在 2008-4-30,下午5:21, Zola™ 写道:

openid

Reply all
Reply to author
Forward
0 new messages