读书人

JOpenId运用心得(免注册直接登录)

发布时间: 2012-12-25 16:18:28 作者: rapoo

JOpenId使用心得(免注册直接登录)

?????? ?

??????? OpenID是一个轻量级的OpenID2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。JOpenID支持Java 5或更高版本,Servlet 2.3或更高版本,能运行在任何Java Web应用中。

?

??????? 我在使用jopenid的过程中,遇到了一些问题,在网上搜索相应的处理方法,基本上搜不到什么- -!所以以下这些大都是自己探索出来的,可能有遗漏,希望各位朋友补充。


1.下载相应的jar文件:
??? 1). JOpenId-1.08.jar
??? 2). sample.zip(此例子使用的是jopenid-1.07.jar,但我使用1.08版本无冲突)
??????? 下载地址:http://code.google.com/p/jopenid/downloads/list

?

2.项目部署后可直接运行,如果你运气好(之前已经做过一些配置),可能会一次性就成功,会显示与你邮箱相应的邮箱地址、用户名、性别等一系列数据。

?

3.可能会出现的问题:
??? 1). url设置的问题,在OpenIdServlet.java里的init()方法里,默认是:
????????? manager.setRealm("http://localhost");
????????? manager.setReturnTo("http://localhost/openid");
?
????????? 可改成manager.setRealm("http://localhost:8080/工程名");
????????? manager.setReturnTo("http://localhost:8080/工程名/openid"); ------ 相信你能看懂

??? 2). 成功登陆了gmail或Yahoo,但返回不到该有的结果
???????? 中文乱码问题(用户名为中文),由于是get方式提交,所以需要自己做转码iso-8859-1? ->? utf-8
???????? 这里提供一个简单的解决方案:
???????? 打开tomcat/conf目录下server.xml文件,在
???????? <Connector port="8080" .../>里加入以下两条配置
???????? useBodyEncodingForURI="true"
???????? URIEncoding="UTF-8"
?
??? 3). 在访问google或yahoo时,可能会出现以下两种错误
??????? org.expressme.openid.OpenIdException: Request failed: https://www.google.com/accounts/o8/id
??????? java.net.SocketTimeoutException: connect timed out
??????? 或
??????? org.expressme.openid.OpenIdException: Request failed: http://open.login.yahooapis.com/openid20/www.yahoo.com/xrds
??????? java.net.SocketTimeoutException: Read timed out
?
??????? 这个我也没有解决,多点几次吧!估计是gmail、yahoo的网络有问题,发布到应用上能稍微好点,实在不行就try/catch跳转到登陆界面吧。


4.就想到这么些了,如果有其他问题,欢迎与我一起探讨。

读书人网 >编程

热点推荐