本篇教程探讨了微信开发之微信授权登录,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

<

应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作,调起微信授权登录,用户授权后拿到用户信息。

一、登录插件配置

先配置微信登录参数 appid和appsecret,在manifest.json 文件中选择SDK配置,登录鉴权  勾选微信登录,填入在开放平台申请的app参数。

在manifest.json 文件中选择 源码视图,找到“OAuth”,配置为

"OAuth" : {

"description" : "登录授权"

},

官方相关查阅地址:http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/192

二、在网站中添加授权登录代码

我的需求是:在网站中点击微信授权登录,判断是否来自wap2app,如果来自wap2app则调起微信授权登录。在网站中加入如下代码:

1.点击微信授权登录,获取微信授权服务:

var auths=null;

$("body").on("click",".loginBtn",function(){

// 微信授权登录

if(navigator.userAgent.indexOf("Html5Plus") > -1){

plus.oauth.getServices( function(services){

auths = services;

authLogin();

}, function(e){

alert("获取分享服务列表失败:"+e.message+" - "+e.code);

} );

}

})

2.登录认证

//登录

function authLogin(){

var s = auths[0];

if ( !s.authResult ) {

s.login( function(e){

// 获取登录操作结果

var result = e.target.authResult;

alert( "登录认证成功:"+JSON.stringify(result) );

authUserInfo()

}, function(e){

alert("登录认证失败!");

}, {} );

}

}

3.获取用户信息

// 获取登录用户信息操作

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 );

} );

}

}

4.退出登录

function authLogout(){

for ( var i in auths ) {

var s = auths[i];

if ( s.authResult ) {

s.logout(function(e){

alert( "注销登录认证成功!" );

}, function(e){

alert( "注销登录认证失败!" );

});

}

}

}

官方相关查阅地址:http://www.html5plus.org/doc/zh_cn/oauth.html

在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.开发微信分享、微信登录等微信相关的功能,在开放平台或者公众平台绑定的域名必须与该项目的域名一致,即我们常说的,微信分享、微信登录必须在线上测试

本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

微信鉴权服务器地址,微信开发之微信授权登录相关推荐

  1. 微信鉴权服务器地址,授权 | 微信开放文档

    # 授权 部分接口需要经过用户授权同意才能调用.我们把这些接口按使用范围分成多个 scope ,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用. 此 ...

  2. 微信开发者配置服务器信息,【开发】微信验证开发者接口配置信息,服务器没有正确响应Token....

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 注册微信公众平台后要成为开发者,token可以随意定义,url输入的不行就通过不了,会提示url超时,或者你的服务器没有正确响应Token验证,请阅读消息 ...

  3. vue+uni-app商城实战 | 第一篇:从0到1快捷开发一个商城微信小程序,无缝接入OAuth2实现一键授权登录

    一. 前言 本篇通过实战来讲述如何使用uni-app快速进行商城微信小程序的开发以及小程序如何接入后台Spring Cloud微服务. 有来商城 youlai-mall 项目是一套全栈商城系统,技术栈 ...

  4. 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码

    京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...

  5. 微信小程序服务器错误错误码404,微信小程序 云开发 错误代码 大全

    微信小程序 云开发 错误代码 大全 发布时间:2019-11-12编辑:三思 转载 阅读(1542) 以下记录的是微信小程序 云开发常出现的错误. 错误码               含义 -1通用错 ...

  6. 开启微信公众号服务器后面的开发,微信公众号开发者权限 开通接口与配置服务器...

    微信公众号开发者权限 开通接口与配置服务器 作为微信公众平台的开发者,是可以修改自定义菜单的.每个公众号下端都会有三个或者是四个菜单.关于菜单的内容以及显示的方式都是可以通过后台的开发者权限更改的.如 ...

  7. 微信 账户升级服务器地址,微信支付商户平台账户升级后有哪些新功能呢?

    注册了微信公众号的服务号,是可以再申请微信支付的,自从微信公众号的兴起,随着技术的改革和革新,微信公众号也随着做出了不少的调整和变化,首先,微信支付商户平台账户升级,这标志着微信服务好有了很多不同的地 ...

  8. 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现

    小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...

  9. 微信公众号开发1-微信授权登录

    说在前面的话 关于微信公众号的项目也已经告落一段时间了,但是项目结束后又有参加了新的项目,导致一直没有时间分享项目经验,今天正好得空来分享一下本项目,本项目主要用到了微信公众号开发,百度地图api等, ...

最新文章

  1. 100多个Jupyter精选资源合集!GitHub高赞,包括项目、库、教程等11个方面
  2. 个人对继承理解以及虚析构函数的理解
  3. c语言会出现fullgc,以上述代码为基础,在发生过一次FullGC后,上述代码在He
  4. ansible基础-Jinja2模版 | 过滤器
  5. Angular list列表的事件响应实现
  6. centos6中三台物理机配置nginx+keepalived+lvs
  7. varchar和Nvarchar区别
  8. Opencv--获取Mat图像数据的方式
  9. 感情沟通出了问题要怎么解决_感情专家咨询:感情出问题了怎么办?
  10. centos7 yum安装maven_Linux安装tomcat、mysql 、Maven与Eclipse的整合、settings.xml
  11. DirectSound学习笔记(4):设备性能
  12. 提高sas安装成功率的方法
  13. Android OTA本地自动升级实现
  14. 手机框架_移动端框架_跨平台_汇总_哪个好
  15. leetcode6.Z 字形转换
  16. eclipse导入已存在工程报 Faceted Project Problem 错误
  17. 编译器之语法分析器(syntax analyzer)
  18. EtherCAT IgH常用命令行使用记录
  19. Jenkins使用时间插件Date Parameter
  20. PostGIS 路线规划

热门文章

  1. 解决div高度不自动增加的问题
  2. python手写数字识别实验报告_Python代码实现简单的MNIST手写数字识别(适合初学者看)...
  3. java饼图_java 百分比饼图的实现代码
  4. 【笔记】nginx - 上:安装、配置(基础、rewrite 重写、proxy_pass 代理、ssl)
  5. K8s Liveness/Readiness/Startup 探针机制
  6. 物联网安全问题与对策
  7. 安装多可预览控件后,不能正常预览和修改该怎么办?
  8. 【Qt炫酷动画】demo02-仿苹果对话框淡入淡出的动画
  9. draco安装与测试
  10. 自动驾驶中的模型预测控制(Model Predictive Control)