原理
点击登录时嵌入iframe标签,src为后台返回的,登录成功后会有个回调到一个新的页面,可以给后台一个空页面用来跳转,然后外部接收到iframe的通信,知道登录成功
实现
调起qq登录弹窗
1 | <div v-else class="l-login" @click="toLogin"> |
1 | /* 这里把完整的css也贴出来,方便看效果 */ |
1 | // 将控制弹窗展示与否的值 showLoginFrame 和 登录的iframe src loginUrl 用 vuex状态管理器操作 |
前面的这些操作已经可以调起qq登录的弹窗了,接下来就是登录成功后的操作
登录成功后会调到一个新的页面,这里我给的是一个 空页面路由是 XXX/kongPage
把这个回调地址给后台,登录成功后就会跳到这个kongPage.vue页面了
iframe使用 window.postMessage 想外传递数据
参考: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage#The_dispatched_event
https://blog.csdn.net/divpoxiao/article/details/80175328
1 | // kongPage 在iframe登录后跳转的子页面 |