前几天刚申请好域名,下面实现网站的qq第三方登录的功能,javaEE的SSH框架。(一些细节问题没有处理,只是大体上实现)
一:首先说一下需求,第一次使用qq第三方登录的用户需要绑定已有的网站用户名,绑定成功后进入首页。以后再使用qq第三方登录就直接进入网站首页。
二:要想使用qq第三方首先需要申请应用(需要有自己的域名)
(1)登录qq互联网站申请应用,http://connect.qq.com/
(2)创建应用
(3)创建好之后还是可以修改的,这里回调地址我用的是域名+back.jsp界面(这个界面里没什么东西 ,就是引用一下js文件,具体看下面)
(4)会得到一个APPID,这样就可以进行开发了。
三:有关界面方面
(1)引入js文件,data-appid就是自己申请的APPID
(2)界面加入如下代码
然后就可以看到第三方登录按钮了
(3)回调界面,引用一下js文件即可。
四:下面写javascrip处理代码,这个是它的JS_SDK的官方文档,
http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
每个登录用户成功登陆后都会返回一个唯一的openId标识和对应的accessToken
(1)先定义一个form表单,定义两个隐藏标签,将来会得到的openId和accessToken,然后将其交给Action处理
(2)获取用户信息的js代码(它的文档上都有),可以alert一些信息,便于调试,
.complete函数里可以将得到的openId和accessToken的值付给对应的隐藏标签,然后提交表单,交由Action层处理
五:后台处理部分
(1)先设计一下实体类,之前有一个用户类,再定义一个qq登陆信息的类,一对一关系,然后写hibernate映射文件,生成表即可(我这里采用是实体类生成表的方法,具体看我之前的博客,当然也可以先建表然后反向工程生成实体类),
(2)上面提交表单对应的action为bindUserUI,首先查询qq信息表中是否已有数据,如果有并且对应的user不为null,就将其对应的user存入session,跳转到首页;
如果没有则先保存到数据库,跳转绑定界面。(细节再处理)
(3)绑定界面需要用户输入网站的账号密码等信息。
(4)对应处理的方法,如果输入信息正确就设置qq信息表中对应的user外键,成功后跳转首页。
六:测试
(1)输入登录地址
(2)弹出登录界面,点击登录
(3)登录后会alert一些我们之前加的信息
(4)第一次登录需要绑定账号
(5)绑定成功后跳转首页
(6)发现数据库插入信息正确
(7)然后再次登录,
(8)直接进入首页
七:总结
申请qq第三方登录应用需要自己的网站和域名,我之前买的阿里云的CentOS服务器,学生购买有优惠,域名是在万网买的。
这次只是实现了第三方的登录和用户的绑定,一些细节、逻辑问题自己再处理。