ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:45.48KB ,
资源ID:22356025      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22356025.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(web实现QQ第三方登录Word文档格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

web实现QQ第三方登录Word文档格式.docx

1、为了保证数据安全,在获取用户信息并登录这一步必须由服务端实现。 这种方式的开发相对便捷,也是后面的实战案例将要采取的方式。server-side 由server端页面跳转到登录授权页面(Authorization code方式) - 回调获得code - 置换accessToken - 可参考:SDK使用JSSDK 可快捷实现前端登录授权的功能,可自定制登录按钮 使用文档:缺点:存在浏览器兼容风险,此外登录按钮UI的定制也存在受限JavaSDK 屏蔽了oauth授权的复杂度,方便后端实现授权及api操作增加依赖jar包,项目容易变得臃肿,尤其是当前项目已经存在oauth功能实现时可不必采用。案

2、例实战功能描述 clientside + server-side 通过QQ网页授权登录,并获取用户信息本地开发环境准备 修改hosts文件将映射到127.0.0.1; 本地服务器以80端口启动,windows下可能会出现80端口被系统进程占用的情况,解决方法可参考 本地服务器启动后,以的域名进行访问,在QQ登录授权时可通过域名验证这一步登录跳转页面headtitleQQ登录跳转script src= type=text/javascript/scriptscript type= /切割字符串转换参数表 function toParamMap(str) var map = ; var segs

3、= str.split(&); for(var i in segs) var seg = segsi; var idx = seg.indexOf(= if(idx bodypAccessToken:span id=accessToken/span-ExpireInOpenID:openid!- 执行脚本 - /应用的APPID var appID = 101207268 /登录授权后的回调地址,设置为当前url var redirectURI = openapi.QQs.login() /初始构造请求 if (window.location.hash.length = 0) var path

4、 = var queryParams = client_id= + appID, redirect_uri= + redirectURI,scope= + get_user_info,list_album,upload_pic,add_feeds,do_like,response_type=token; var query = queryParams.join( var url = path + query; window.location.href= url; /在成功授权后回调时location.hash将带有access_token信息,开始获取openid else /获取access

5、 token var accessToken = window.location.hash.substring(1); var map = toParamMap(accessToken); /记录accessToken).text(map.access_token);#expire).text(map.expires_in); /使用Access Token来获取用户的OpenID var path = access_token=+map.access_token, callback=callback openImplict(url);/body/html 页面在第一次打开时跳转到QQ登录授权

6、页面; 授权成功之后回到当前页面通过url参数(hash串)获得accessToken; 此后可通过jsonp方式获取用户的openid,url如:获取到用户OpenID,返回包如下(JSONP方式获取):callback( client_id:YOUR_APPID,YOUR_OPENID )将access_token及openid传到服务端进行处理3 server端获取用户信息接收openid的页面方法 /* * 登录结果 * * param access_token * param openid */ public static void login_result(String acces

7、s_token, String openid) /调用api获取qq用户信息 QQUserInfo user = QQApi.getUserInfo(access_token, openid); /此时若取得user信息,则可以进行保存,并执行用户登录操作 . /登录成功后跳转 redirect(xxx);QQApi的实现/* * QQ互联API * * * 登录流程: * 1 前端跳转qq授权页面 * 2 js获得access_token * 3 通过jsonp方式获得openid * 4 server端根据上传的access_token及openid获取用户信息,如昵称、头像 * 参考文档

8、:/pre * author xxx * createDate 2015年3月10日public class QQApi public static String appId = xxx public static String appSecret = public static String baseUrl = protected static final String URL_GET_USERINFO = baseUrl + /user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s protected stati

9、c final long ACCESS_TIMEOUT = 15; protected static final String DEF_APP_TOKEN_EXPIRE = 3h * 获取用户信息 * 调用地址: * 参数 * access_token=*& * oauth_consumer_key=12345& * openid * 返回结果如下: * * ret 0,msg ,is_lostnickname小吞gender女province广东city广州year1993figureurlfigureurl_1figureurl_2figureurl_qq_1figureurl_qq_2i

10、s_yellow_vip0vipyellow_vip_levellevelis_yellow_year_vip * * param accessToken * return public static QQUserInfo getUserInfo(String accessToken, String openid) if (StringUtils.isEmpty(accessToken) | StringUtils.isEmpty(openid) return null; String url = String.format(URL_GET_USERINFO, accessToken, app

11、Id, openid); String resultString = DefaultHttp.get(url, ACCESS_TIMEOUT, GlobalConstants.UTF_8); Logger.debug(sso-qqgetuserinfo. use url %s, url); QQUserInfo userinfo = JsonUtil.fromJson(resultString, QQUserInfo.class); if (userinfo = null | !userinfo.hasGot() sso-qqget userinfo failed, with result of , resultString);sso-qqget userinfo success, with result of return userinfo;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1