javaEE SSH框架 qq第三方登录及用户绑定

时间:2022-04-02 13:36:50

前几天刚申请好域名,下面实现网站的qq第三方登录的功能,javaEE的SSH框架。(一些细节问题没有处理,只是大体上实现)

一:首先说一下需求,第一次使用qq第三方登录的用户需要绑定已有的网站用户名,绑定成功后进入首页。以后再使用qq第三方登录就直接进入网站首页。

二:要想使用qq第三方首先需要申请应用(需要有自己的域名)

(1)登录qq互联网站申请应用,http://connect.qq.com/

javaEE SSH框架 qq第三方登录及用户绑定

(2)创建应用

javaEE SSH框架 qq第三方登录及用户绑定

(3)创建好之后还是可以修改的,这里回调地址我用的是域名+back.jsp界面(这个界面里没什么东西 ,就是引用一下js文件,具体看下面)

javaEE SSH框架 qq第三方登录及用户绑定

(4)会得到一个APPID,这样就可以进行开发了。

javaEE SSH框架 qq第三方登录及用户绑定

三:有关界面方面

(1)引入js文件,data-appid就是自己申请的APPID

javaEE SSH框架 qq第三方登录及用户绑定

(2)界面加入如下代码

javaEE SSH框架 qq第三方登录及用户绑定

然后就可以看到第三方登录按钮了

javaEE SSH框架 qq第三方登录及用户绑定

(3)回调界面,引用一下js文件即可。

javaEE SSH框架 qq第三方登录及用户绑定

四:下面写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处理

javaEE SSH框架 qq第三方登录及用户绑定

(2)获取用户信息的js代码(它的文档上都有),可以alert一些信息,便于调试,

javaEE SSH框架 qq第三方登录及用户绑定

.complete函数里可以将得到的openId和accessToken的值付给对应的隐藏标签,然后提交表单,交由Action层处理

javaEE SSH框架 qq第三方登录及用户绑定

五:后台处理部分

(1)先设计一下实体类,之前有一个用户类,再定义一个qq登陆信息的类,一对一关系,然后写hibernate映射文件,生成表即可(我这里采用是实体类生成表的方法,具体看我之前的博客,当然也可以先建表然后反向工程生成实体类),

javaEE SSH框架 qq第三方登录及用户绑定

(2)上面提交表单对应的action为bindUserUI,首先查询qq信息表中是否已有数据,如果有并且对应的user不为null,就将其对应的user存入session,跳转到首页;

如果没有则先保存到数据库,跳转绑定界面。(细节再处理)

javaEE SSH框架 qq第三方登录及用户绑定

(3)绑定界面需要用户输入网站的账号密码等信息。

javaEE SSH框架 qq第三方登录及用户绑定

(4)对应处理的方法,如果输入信息正确就设置qq信息表中对应的user外键,成功后跳转首页。

javaEE SSH框架 qq第三方登录及用户绑定

六:测试

(1)输入登录地址

javaEE SSH框架 qq第三方登录及用户绑定

(2)弹出登录界面,点击登录

javaEE SSH框架 qq第三方登录及用户绑定

(3)登录后会alert一些我们之前加的信息

javaEE SSH框架 qq第三方登录及用户绑定

(4)第一次登录需要绑定账号

javaEE SSH框架 qq第三方登录及用户绑定

javaEE SSH框架 qq第三方登录及用户绑定

(5)绑定成功后跳转首页

javaEE SSH框架 qq第三方登录及用户绑定

(6)发现数据库插入信息正确

javaEE SSH框架 qq第三方登录及用户绑定

(7)然后再次登录,

javaEE SSH框架 qq第三方登录及用户绑定

(8)直接进入首页

javaEE SSH框架 qq第三方登录及用户绑定

七:总结

申请qq第三方登录应用需要自己的网站和域名,我之前买的阿里云的CentOS服务器,学生购买有优惠,域名是在万网买的。

这次只是实现了第三方的登录和用户的绑定,一些细节、逻辑问题自己再处理。