`
w1985dk
  • 浏览: 2871 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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.就想到这么些了,如果有其他问题,欢迎与我一起探讨。

1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics