PHP三方登录,移动端与服务端交互
用户点击授权:通过友盟一键授权,获取到第三方平台的token。 获取个人信息:利用获取到的token,向第三方平台请求获取openid、unionid、nickname等用户信息。
发布日期:2025-05-03 09:50:22
浏览次数:11
分类:精选文章
本文共 2008 字,大约阅读时间需要 6 分钟。
移动端(android)三方登录流程说明
一、移动端授权流程
在友盟对各平台封装的基础上,再次封装,直接通过回调获取第三方平台的token、openid、unionid、nickname等信息。该流程主要包含以下步骤:
// 示例:其他平台的登录处理loginByWeixin(this, new AuthCallback() { @Override void onComplete(int var2, WeixinInfo info) { UmengUtil.loginBySina(this, new AuthCallback () { @Override void onComplete(int var2, SinaInfo info) { Log.e("dd", info.toString()); } @Override void onError(int var2, Throwable var3) {} @Override void onCancel(int var2) {} }); } @Override void onError(int var2, Throwable var3) {} @Override void onCancel(int var2) {}});
二、服务端验证流程
服务端接收到token、openid等关键信息后,需执行以下步骤:
信息核对校验:
- 调用第三方平台的API,验证token的有效性。
- 比较客户端传来的openid与服务端获取到的openid是否一致。
账户处理:
- 根据第三方平台的openid或unionid,在数据库中查询是否存在对应账户。
- 如果没有账户,生成新账户并进行系统注册绑定。
- 如果已有账户,无需生成新账户。
返回个人信息:
- 将账户的个人信息取出,返回给客户端完成登录。
三、信息校验规则
一般规则:
- 服务端需根据客户端传递的token,向第三方平台请求openid。
- 与客户端传递的openid进行比对,若一致则视为验证通过。
特殊规则:
Sina:查询用户access_token的授权信息,包括授权时间、过期时间和scope权限。
- 请求参数:
access_token - 返回数据示例:
{ "uid": 1073880650, "appkey": 1352222456, "scope": null, "create_at": 1352267591, "expire_in": 157679471}
- 请求参数:
Weixin:
- 唯一标识为
unionid,需通过token和openid获取unionid进行比对。 - 请求方式:GET
- 返回示例:
{ "subscribe": 1, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "广州", "province": "广东", "country": "中国", "headimgurl": "[http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0]", "subscribe_time": 1382694957, "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL", "remark": "", "groupid": 0}
- 唯一标识为
QQ:
- 请求地址:PC网站、WAP网站
- 请求参数:
access_token - 返回示例:
{ "client_id": "YOUR_APPID", "openid": "YOUR_OPENID"} - 注意:解析openid时需去掉外层括号。
四、后续操作
完成第三方平台认证后,按照系统注册绑定流程处理,参考:https://www.jianshu.com/p/5add98492ce5
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2026年06月18日 08时14分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP水仙花问题解法之一
2023-03-01
php没有解析是怎么回事,linux下php文件没有被剖析怎么办?_后端开发
2023-03-01
php注册页面实现注册后跳转页面
2023-03-01
PHP消息队列的实现方式与详解,值得一看
2023-03-01
PHP混合Go协程并发
2023-03-01
php源码中如何添加滚动公告,给WordPress网站添加滚动公告的方法
2023-03-01
PHP源码安装后如何新增模块
2023-03-01
php源码详细安装步骤,linux下php源码安装步骤
2023-03-01
php漏洞tips
2023-03-01
php版Zencoding之 phpstorm
2023-03-01
PHP版本升级5.4手记
2023-03-01
php版本升级总结
2023-03-01
php版本微信公众号开发
2023-03-01
php版的微信公众号开发演示
2023-03-01
php生成html文件的多种方法介绍
2023-03-01
php生成二维码到图片上
2023-03-01
php生成二维码并下载图片(适应于框架)
2023-03-01
PHP生成及获取JSON文件的方法
2023-03-01
PHP生成唯一不重复的编号
2023-03-01
PHP生成器-动态生成内容的数组
2023-03-01