《天马》

 找回密码
 注册

强烈推荐:微信免注册登录

搜索
热搜: 投稿 公告 密码
文化破圈 短视频推广免费录制音频,入驻喜马拉雅作家档案(欢迎加入)
查看: 1756|回复: 0
收起左侧

[网站历史] 微信授权登录以及踩过的坑【转载】

[复制链接]

1874

作品

2184

互动

2万

积分

创始人

成绩
16419
威望
11339
精华
3
粉丝
109
好友
155
注册时间
2018-1-30
最后登录
2024-4-18
在线时间
8928 小时
性别
发表于 2019-8-20 19:32:14 | 显示全部楼层 |阅读模式
应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作,调起微信授权登录,用户授权后拿到用户信息。
一、登录插件配置
先配置微信登录参数 appid和appsecret,在manifest.json 文件中选择SDK配置,登录鉴权  勾选微信登录,填入在开放平台申请的app参数。
在manifest.json 文件中选择 源码视图,找到“OAuth”,配置为
"OAuth" : {    "description" : "登录授权"},
二、在网站中添加授权登录代码
我的需求是:在网站中点击微信授权登录,判断是否来自wap2app,如果来自wap2app则调起微信授权登录。在网站中加入如下代码:
1.点击微信授权登录,获取微信授权服务:
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

2.登录认证
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

3.获取用户信息
[url=][/url]
// 获取登录用户信息操作function authUserInfo(){    var s = auths[0];    if ( !s.authResult ) {        alert("未登录授权!");    } else {        s.getUserInfo( function(e){            alert( "获取用户信息成功:"+JSON.stringify(s.userInfo) );            //拿到用户信息,进行相关处理,ajax传用户数据到服务器等            var prame = JSON.stringify(s.userInfo);        }, function(e){            alert( "获取用户信息失败:"+e.message+" - "+e.code );        } );    }}[url=][/url]

4.退出登录
[url=][/url]
function authLogout(){    for ( var i in auths ) {        var s = auths;        if ( s.authResult ) {            s.logout(function(e){                alert( "注销登录认证成功!" );            }, function(e){                alert( "注销登录认证失败!" );            });        }    }}[url=][/url]

在hbuilder中运行会发现可以调起微信授权,且可以获取用户信息,如下图:
点击确认登录后,返回用户信息和unionid等信息,如下图:
但是打包后会一直提示登录认证失败,无法授权,也没有调起微信授权的页面,主要有以下两个错误:
一、报错 code = -2,用户取消
解决办法:研究了很久,发现主要是两个原因:1.使用了网站的appid和appsecret,应该是申请的app应用的appid和appsecret,2.应该使用自有证书
依旧还是报错 code = -2,检查是否在线上运行,即在开放平台绑定的域名必须与该项目的域名一致,即我们常说的,微信分享、微信登录必须在线上测试
二、报错 code = -100如下图
问题1:检查应用签名是否错误
问题2:检查开放平台的配置授权回调域名是否配置,且是否配置正确(www.baidu.com格式)
解决办法:
微信开放平台移动应用中的应用签名错误,若申请应用时开发信息中数据填写错误,直接修改,已审核通过的不需要重写审核。
应用签名的要求:
1.MD5格式 2.签名为小写;3.去除冒号。都为必须条件。
在Hbuilder中配置时,签名也必须是修改后的格式(md5、小写、去冒号)。
Hbuilder中配置应用签名时,打开manifest.json文件,打开“源码视图”(基础配置,图标配置,启动图配置,SDK配置,模块权限配置中都是没有应用签名配置的,所以很容易遗漏修改它的值),找到 plus --> signature,修改signature的值为符合条件的值即可

以上打包之后,不在报错,但是还有一个问题,在app中点击微信授权后,除了首次会调起微信授权手动授权的界面,再次授权时直接就弹出了用户信息,即直接执行了,缺少用户在终端确认的请求授权过程
alert( "登录认证成功:"+JSON.stringify(result) );
这是因为,授权的微信号只有首次授权时才会调起微信授权的页面,当退出微信授权再次进入时,点击授权会跳转之后再跳回来,自动获取到用户信息。
打包app,微信授权登录常遇到的问题总结
1.使用了网站的appid和appsecret,应该是申请的app应用的appid和appsecret
2.应该使用自有证书
3.微信开放平台移动应用中的应用签名错误,必须满足3点:1.MD5格式 2.签名为小写;3.去除冒号。都为必须条件。
4.(网站或打包app)微信授权登录,必须在开放平台配置授权回调域名,且必须是www形式的,如www.baidu.com,否则授权登录一直报错
5.开发微信分享、微信登录等微信相关的功能,在开放平台或者公众平台绑定的域名必须与该项目的域名一致,即我们常说的,微信分享、微信登录必须在线上测试
转载时请注明出处及相应链接,本文永久地址:https://www.cnblogs.com/wangxiaoling/p/9850717.html,文章标题备注转载,如:xxx【转载】,谢谢!
作者其它文章




上一篇:测试app
下一篇:签名生成工具

站长微信
扫一扫即可获得帮助
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|域名服务|西方经典阅读|古代经典|近代经典诗歌|近代经典散文|近代经典小说|作家档案|Archiver|手机客户端|小黑屋|域名申诉|域名仲裁|企业建站|联系我们|域名申诉仲裁|杂文评论|龙舞网络|天马原创文学网 ( 冀ICP备11025393号-6 冀ICP备2021004524号 )|网站地图

GMT+8, 2024-4-18 10:39 , Processed in 2.296875 second(s), 28 queries , File On.

冀公网安备:13032302000108 冀ICP备11025393号-6 

文章版权归天马原创文学网和作者所有,未经许可,不得转载。 

天马原创文学网是秦皇岛市抚宁区作家协会主办的文学交流平台。 

本站内容仅供抚宁区及部分域外作家学习交流,不涉及印刷和文化产品,是免费的非经营性网站。 

名誉站长:孙书柱、桑恒昌

By Dz! X3.4

快速回复 返回顶部 返回列表