所以我使用了https://developers.google.com/identity/sign-in/web/的指南和代码

当我点击这个按钮时,它工作正常,它会将我重定向到谷歌登录页面,在验证过程中不会出现任何问题.

完成后,它将我重定向回按钮所在的页面(vue组件).理论上,它应该调用onSignIn方法并用console.log打印出信息,但它没有发生.

不知何故,Vue无法执行data-onsuccess="onSignIn"次死刑.我试着将data-onsuccess改为动态props (:data-onsuccess)或事件处理(@data-onsuccess),这两个都不起作用.

以前有人反驳过这个问题吗?或者有特殊的方法在Vue上实现它?

推荐答案

data-onsuccess="onSignIn"正在寻找全球onSignIn功能.你需要把onSignIn放在Vue组件外面.

另一种方法是使用gapi.signin2.render渲染登录按钮,然后可以在Vue组件内部使用onSignIn:

<template>
  <div id="google-signin-button"></div>
</template>

<script>
export default {
  mounted() {
    gapi.signin2.render('google-signin-button', {
      onsuccess: this.onSignIn
    })
  },
  methods: {
    onSignIn (user) {
      const profile = user.getBasicProfile()
    }
  }
}
</script>

更多参考:https://developers.google.com/identity/sign-in/web/build-button

Vue.js相关问答推荐

无论条件解析为假,V-If元素都会显示

将 html 文件移出 dist vite 中的 src 文件夹

绑定事件在渲染函数中不起作用

Nuxt3-Vue中的useRoute和useRouter有什么区别

vue js导航到带有问号的url

nuxt.js - 预加载 .woff 字体加载为@font-face

如何使用 vue.js 获取本地 html 文件?

无需直接 DOM 操作即可绘制d3-axis

使用 Vue.js 和 Jest 进行 URL 重定向测试

在 jest document.querySelector 中测试 vue 组件期间始终返回 null

未捕获的错误:[vue-composition-api] 必须在使用任何函数之前调用 Vue.use(plugin)

Vuetify - 如何保持第一个扩展面板默认打开,如果我打开另一个面板,其他面板应该关闭?

使用 Vue.js (cdn) 在特定元素上切换显示/隐藏

如何使用 Vuejs 和 Laravel 获取当前经过身份验证的用户 ID?

如何将事件绑定到 Vuetify 中的树视图 node ?

了解 Nuxt.js 中的State状态和Getters:Getters不起作用

vuejs 配置:使用全局变量?

VueJS 路由 - 使用子路由和 Vuetify 时如何停止多个活动路由(active routes)?

Vuejs 组件等待 facebook sdk 加载

单击 v-select 项目时如何获取对象而不是单个值?