使用钉钉的DTFrameLogin这个二维码。我在一个前端项目中使用了2次这个DTFrameLogin。生成了2二维码。2二维码在不同的地方。一个用来做登录验证。一个用来做忘记密码的用户验证。现在我碰到了一个问题就是为什么不管扫哪个二维码,他都会同时调用2个验证接口。登录和忘记密码会一起调用了?
这可能是因为您的前端代码中同时调用了这两个二维码的验证接口,导致扫描任意一个二维码都会触发两个接口的调用。
您可以检查一下您的代码,确保只有对应的验证接口被调用。
如果问题仍然存在,建议您检查一下后端接口的实现,看看是否存在并发调用的情况。
1DTFrameLogin 是钉钉提供的一种基于 Web 开发的二维码登录框架,用于实现通过扫描二维码的方式进行登录验证和用户验证。
根据您的描述,可能是因为两个 DTFrameLogin 在页面上同时存在,并且使用了相同的回调函数,导致扫描任意一个二维码都会触发相同的回调函数,从而调用了两个验证接口。
为了解决这个问题,您可以考虑使用不同的回调函数来处理登录验证和用户验证。具体操作可以参考以下步骤:
在页面中引入两个 DTFrameLogin,分别对应登录验证和用户验证。 html Copy
javascript Copy const loginQRCode = new window.DTFrameLogin({id: 'login-qrcode',
callback: loginCallback
})
const userQRCode = new window.DTFrameLogin({ id: 'user-qrcode', callback: userCallback }) 分别实现登录验证和用户验证的回调函数。 javascript Copy function loginCallback(result) { // 处理登录验证结果 }
function userCallback(result) { // 处理用户验证结果 } 在回调函数中判断二维码类型,然后分别调用不同的验证接口。 javascript Copy function loginCallback(result) { if (result.type === 'login') { // 调用登录验证接口 } }
function userCallback(result) { if (result.type === 'user') { // 调用用户验证接口 } }
DTFrameLogin是钉钉开放平台提供的一种二维码扫码登录的解决方案。一般实现过程是在前端页面或者 APP 端调用该接口生成授权登录的二维码,用户使用钉钉 APP 扫码之后,前端请求钉钉开放平台的服务接口,从而实现登录验证。 你描述的问题很可能是因为两个不同用途的二维码都指向了同一个服务接口,导致扫描任意一个二维码后都触发了相同的接口请求。为了解决这个问题,你需要确保每个二维码都对应不同的服务接口或不同的接口参数。 具体实现方式根据你使用的开放平台接口和代码实现可能有所不同,这里提供一些建议:
检查 API 调用方法及参数是否正确
你可以检查两个二维码对应的调用方法及参数是否正确,确保它们指向不同的服务接口或使用不同的参数。尤其要注意接口参数中包含用户身份信息等敏感信息时,需要确保使用正确的参数,避免导致数据错乱。
确认服务接口地址不重复
你可以检查每个二维码对应的服务接口地址是否不同,这需要你确认使用的服务端口或服务名称等是否一致。如果二维码指向的服务地址相同,那么无论扫描哪个二维码都会触发相同的服务接口请求。
考虑使用不同的应用ID
你可以考虑在应用申请的时候,创建不同的应用 ID 来应对不同的业务需求,这样在应用访问分离时可以避免出现相互干扰的现象。 总之,应该保证每个二维码指向独立的接口或参数,以确保用户扫描不同的二维码时不会触发同一个接口请求,也为后续的业务扩展和维护提供便利。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。