越来越多的同学在问我一些常识性的小问题,我来统一解决一下方便各位小伙伴更好的开发应用,不要在这些小问题上面浪费时间!
那么我们先要知道他的运行原理,然后再做排查!
图文来源:http://news.gulufenfa.com/post/139
运行原理微信登录是通过OAuth 2.0协议实现的。以下是微信登录的验证流程的每一步骤:
用户点击登录按钮:用户在网站或应用程序点击登录按钮,选择通过微信登录。
授权请求:网站或应用程序向微信发起一个授权请求,包括应用ID、重定向URI、授权作用域和授权类型等参数。
用户同意授权:微信向用户展示授权页面,用户需要确认是否同意将信息授权给网站或应用程序。
授权回调:如果用户同意授权,微信将会重定向用户到之前提供的重定向URI,并拼接上授权凭证code(一次性临时凭证)作为查询参数回传给网站或应用程序。
获取访问凭证:网站或应用程序收到微信回传的授权凭证code后,再次向微信发起请求,包括应用ID、应用密钥、授权凭证code和授权类型等参数。
获取用户凭证:微信验证请求中的凭证code和应用密钥是否匹配正确,如果匹配成功,微信会返回访问凭证access_token和用户唯一标识openid等信息。
获取用户信息:使用获得的访问凭证access_token和用户唯一标识openid,网站或应用程序可以向微信请求用户的基本信息,如昵称、头像等。
登录成功:网站或应用程序根据接收到的用户信息,完成登录流程,并根据业务需求进行相关操作。
图文来源:http://news.gulufenfa.com/post/139
当在App中使用微信授权登录游戏时出现登录失败签名不一致的错误提示,可能的原因和解决方法如下:
可能性一:签名配置问题
第一步:检查应用程序在微信开放平台的配置。
确保应用程序包名或Bundle ID与在微信开放平台注册时填写的一致。
检查应用程序的签名是否和在微信开放平台配置中填写的签名一致。
第二步:正确配置签名。
如果应用程序是用自己生成的签名进行打包,确认签名是正确且与配置中一致。
如果应用程序使用了混淆工具(如ProGuard),请检查是否正确配置了混淆规则,以避免对微信SDK中的必需类和方法进行混淆。
可能性二:授权请求问题
第一步:检查授权请求参数。
确保应用程序在发起微信登录时,正确设置了应用ID(AppID)。
确保授权请求中的重定向URI和微信开放平台配置中的授权回调页(Redirect URI)一致。
第二步:验证授权回调页。
确保在微信开放平台的授权回调页配置中,填写了正确的重定向URI。
确认应用程序正确接收并处理微信回调的授权凭证(code)。
可能性三:网络连接问题
第一步:检查网络连接状态。
确保设备正常联网。
确认应用程序在使用微信登录时,网络连接是正常的。
第二步:重启应用程序和设备。
尝试退出应用程序并重新启动,或者重启设备,以清除可能的临时错误或缓存问题。
可能性三:wxid到期或无效
第一步:确认wxid的有效性。
检查wxid是否已过期或无效。在某些情况下,微信授权登录可能会设置有效期或限制使用次数。
第二步:更新wxid。
如果wxid已过期,需要重新请求微信授权登录,获取新的wxid。
可能性四:填写错误或复制错误
第一步:检查应用程序中的代码或配置文件。
检查应用程序中,使用wxid进行微信授权登录的代码是否正确。
确认应用程序中填写的wxid是否与微信开放平台的配置一致。
第二步:复制正确的wxid。
确保在应用程序中正确复制了微信开放平台提供的wxid,没有额外的空格或错误字符。
五:应用权限问题
第一步:检查应用在微信开放平台的权限配置。
确认应用已正确申请并获得了必需的微信登录权限。
确保在应用的权限配置中开启了微信登录相关的权限。
第二步:处理权限请求回调。
在应用程序中确保正确处理微信登录权限的请求回调,包括用户是否授权的判断和处理逻辑。
可能性六:时间同步问题
第一步:检查设备的时间设置。
确保设备的时间设置正确,与实际时间同步。
第二步:同步微信开放平台的时间。
尝试同步微信开放平台的服务器时间,以确保与微信服务器的时间保持一致。
可能性七:版本问题
第一步:检查微信SDK版本。
确认应用程序使用的微信SDK版本与微信开放平台的要求相符。
第二步:更新微信SDK。
如果发现使用的微信SDK版本较旧,尝试更新为最新版本,以解决可能的兼容性问题。
图文来源:http://news.gulufenfa.com/post/139