彭率 2019-07-30 15:13 采纳率: 40%
浏览 2393
已采纳

微信授权登录,open_id是如何生成的?

微信授权登录时,微信是怎么知道该为哪个用户生成唯一标识open_id的?

  • 写回答

5条回答 默认 最新

  • 彭率 2019-08-07 15:04
    关注

    //open_id与code关联
    1.H5向App发起获取Code的JS请求
    $(function(){
    $('body').on('click','.onClick_btn',function(){
    //获取操作系统信息
    var u = navigator.userAgent, app = navigator.appVersion;
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;//Android端
    var isIOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/);//iOS端

            if (isAndroid) { //判断是否为Android操作系统
                //请求获取code,参数  用户注册应用得到的client_id  用户自定义的跳转地址
                test.getCode('client_id','redirect_uri');//getCode为js与app约定的交互方法
            }
            else if (isIOS) {//判断是否为iOS操作系统
                //请求获取code
                window.webkit.messageHandlers.getCode.postMessage({client_id:'client_id',redirect_uri:'redirect_uri'});//getCode为js与app约定的交互方法
            }else{ //其它操作系统,无需任何处理
            }
        })
    
    });
    

    2.App端得到JS参数,携带JS参数、app端保存的用户信息(app端请求不会暴露信息给第三方)请求服务器端获取code;
    3.App将请求得到的code和redirect_uri返回给H5
    4.H5根据得到的App提供的值做处理
    function redirect(redirect_uri,code){//redirect方法为app与h5约定
    //处理移动端返回redirect_uri、code
    //自定义操作(当前为重定向,第三方也可进行其他操作)
    window.location.href = redirect_uri
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮