PHP三方登录,移动端与服务端交互
发布日期:2025-05-03 09:50:22 浏览次数:11 分类:精选文章

本文共 2008 字,大约阅读时间需要 6 分钟。

移动端(android)三方登录流程说明

一、移动端授权流程

在友盟对各平台封装的基础上,再次封装,直接通过回调获取第三方平台的token、openid、unionid、nickname等信息。该流程主要包含以下步骤:

  • 用户点击授权:通过友盟一键授权,获取到第三方平台的token。
  • 获取个人信息:利用获取到的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

    上一篇:Redis事务深入解析和使用
    下一篇:php一句话图片运行,【后端开发】php一句话图片木马怎么解析

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2026年06月18日 08时14分58秒