z***@qq.com
z***@qq.com
  • 发布:2019-04-24 10:43
  • 更新:2020-05-21 10:47
  • 阅读:12412

uniapp打包的h5如何进行微信授权呢

分类:uni-app

有没有好点的思路供参考,谢谢各位大佬

2019-04-24 10:43 负责人:无 分享
已邀请:
z***@qq.com

z***@qq.com (作者)

-..-

7***@qq.com

7***@qq.com

app直接官方教程通过跳转方式发送微信code

<?php  
header ( "Content-type: text/html; charset=utf-8" );  
function alert($msg){  
    exit("<script>alert('$msg');history.go(-1);</script>");  
}  

require_once 'config.php';//加载dz核心库和appkey  
别的程序自己参考  

if ($code==""){alert('授权失败,请重新登录');}  
{  

$GETtoken='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WXAppId.'&secret='.WXAppSecret.'&code='.$code.'&grant_type=authorization_code';  
$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL,$GETtoken);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_HEADER, 0);  
//执行并获取HTML文档内容  
$output = curl_exec($ch);  
//释放curl句柄  
curl_close($ch);  
//打印获得的数据  
//print_r($output);  
$output_array = json_decode($output);  

$optk=$output_array->access_token;  
$opid=$output_array->openid;  
$refresh_token=$output_array->refresh_token;  
$expires_in=$output_array->expires_in;  

$GETuserinfo='https://api.weixin.qq.com/sns/userinfo?access_token='.$optk.'&openid='.$opid;  
$cha = curl_init();  
//设置选项,  
curl_setopt($cha, CURLOPT_URL,$GETuserinfo);  
curl_setopt($cha, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($cha, CURLOPT_HEADER, 0);  
//执行并获取HTML文档内容  
$outpt = curl_exec($cha);  
//释放curl句柄  
curl_close($cha);  
//打印获得的数据  
//print_r($outpt);  

$outpt_array = json_decode($outpt);  

$openid=$outpt_array->openid;  
$access_token=$output_array->access_token;  
$nickname=$outpt_array->nickname;  
$sex=$outpt_array->sex;  
$headimgurl= $outpt_array->headimgurl;  
$unionid= $outpt_array->unionid;  

//$fetch = C::t('#wechat#')->fetch_first($openid); //检查是否绑定  

$fetch=DB::fetch_first("SELECT * FROM ".DB::table('common_member_wechat')." WHERE unionid='$unionid'");  

//error_reporting(E_ALL);  
//ini_set('display_errors', 1);  
//$fetch['uid']=1;  
if($fetch){  
    $uid=$fetch['uid'];  
    $user = getuserbyuid($uid, 1);  
    require_once libfile('function/member');  
    setloginstatus($user, 2592000);  
    header('location:../../');  
}else{  
    $cookietime=2592000;  
    dsetcookie('unionid', $unionid, $cookietime, 1, true);  
    dsetcookie('appaccesstoken', $access_token, $cookietime, 1, true);  
    dsetcookie('headimgurl', $headimgurl, $cookietime, 1, true);  
    dsetcookie('appopenid', $openid, $cookietime, 1, true);  
    dsetcookie('nickname', $nickname, $cookietime, 1, true);  

    header('location:appweixinbind.php');我。//未注册用户绑定  

}  

//print_r($fetch);exit("SELECT * FROM ".DB::table('common_member_wechat')." WHERE unionid='$unionid'");  

//echo '<br>输出openid@'.$openid;  

//echo '<br>输出uniouid@'.$unioiud;  

/* echo '<br>输出accesstoken@'.$access_token;  
echo '<br>输出昵称@'.$nicknme;  
echo '<br>输出性别@'.$sex;  
echo '<br>输出头像@'.$headimgurl; */  

}  

?>
  • z***@qq.com (作者)

    Σ( ° △ °|||)︴h5啊哥。。app我知道,小程序我也知道,之前H5是要用wxsdk的

    2019-04-24 14:03

  • 7***@qq.com

    回复 z***@qq.com: 你是要打包的。 app是网站拉起微信登陆是吧?

    2019-04-24 14:46

  • 7***@qq.com

    回复 z***@qq.com: h5不用jssdk也可以的吧判断微信浏览器环境通过js拼接请求

    拼接网址取code回吊到我上面php代码就行了。

    2019-04-24 15:15

z***@qq.com

z***@qq.com (作者)

这个应该可以解决:http://ask.dcloud.net.cn/article/35380

  • 7***@qq.com

    不是太明白你意思

    你是直接打包网站

    让网站通过微信公众号登陆

    微信小程序登陆

    安卓app拉起登陆是吧

    h5代码不知道怎么写对吧

    2019-04-24 14:49

  • z***@qq.com (作者)

    回复 7***@qq.com: 这个连接是我想要的,跟app和小程序没有任何关系的,因为我之前是用vue-cli打包的微信h5里面用的是微信sdk,但是用这个uni-app打包的之前是不知道,看了这个连接以后就明白了,和vue-cli是一样的,引入一个sdk模块就可以了,多谢

    2019-04-24 14:52

  • 7***@qq.com

    回复 z***@qq.com: 你是要微信公众号登陆和分享啊

    2019-04-24 14:59

  • 7***@qq.com

    2019-04-24 15:01

  • 7***@qq.com

    我的网站就是直接打包网址的

    2019-04-24 15:07

7***@qq.com

7***@qq.com

微信QQ授权登陆
前端代码
请在需要登陆的模板页面设登陆button #wxlogin'
live可以换成onclink

点击微信登陆会拉起app授权登陆
'dcloudapi/oauth/weixin.php?code='+e.code;
会带上code参数跳转到我上面后台php文件处完成授权登陆,
如果你的app是单纯的。h5没有后台的
官方文可以直接获取到用户资料
微信里授权登陆不是用这个方式


     // 注销所有登录授权认证服务  
function authLogout(){  
    for ( var i in auths ) {  
        var s = auths[i];  
        if ( s.authResult ) {  
            s.logout(function(e){  
                //alert( "注销登录认证成功!" );  
            }, function(e){  
                alert( "注销登录认证失败!" );  
            });  
        }  
    }  
}  
                var auths=null;  
    var aweixin = null;  
    var aqq = null;  
  var awb=null  

    document.addEventListener( "plusready", function(){  

        plus.oauth.getServices( function(services){  
            auths = services;  
            $.each(services, function(k, v){  
                if(v.id == 'weixin'){  
                    aweixin = v;  
                }  
                if(v.id == 'qq'){  
                    aqq = v;  
                }  

            });  

        }, function(e){  
            alert( " 授权失败"+e.message+" - "+e.code );  
        } );  

        $('#wxlogin').live('click', function(){  
            authLogin();  
            return false;  
        });  
        $('#qqlogin').live('click', function(){  
      qqLogin();  

            return false;  
        });  
    }, false );  

    function authLogin(){  
        if(!aweixin){  
            alert("  ǰ      ֧  ΢ ŵ ¼");  
            return;  
        }  
        aweixin.authorize(function(e){  
            location.href = 'dcloudapi/oauth/weixin.php?code='+e.code;  
            authLogout();  
            return false;  
        }, function(e){  
            alert("  Ȩʧ ܣ "+JSON.stringify(e));  
        }, {scope:'snsapi_userinfo',state:'authorize'});  
    }  

    function qqLogin(){  

aqq.login(function(e){  
// 获取登录操作结果  

    alert(aqq.authResult.access_token);  
        alert(aqq.authResult.expires_in);  
            alert(aqq.authResult.userInfo);  
                settoken('accesstoken',aqq.authResult.access_token,1)  
  location.href = 'dcloudapi/oauth/qq.php';  
authLogout();  

}, function(e){  
 popup.open('登录认证失败', 'alert');  
});  

    }  
1***@qq.com

1***@qq.com

你可以了吗,可以教教我不,uni-app做微信H5网页 网页微信登入怎么弄呢 就是网页授权

该问题目前已经被锁定, 无法添加新回复