Проблема с vue-google-oauth-2 в Vue.js
Я пытаюсь добавить кнопку входа в Google в свое приложение Vue.js и обнаружил плагин vue-google-oauth2. Я установил его и следовал в точности sample.html
код для интеграции его в моем приложении, таким образом:
<template>
<div>
<h1>Test</h1>
<button @click="handleClickSignIn" :disabled="!isLoaded">signIn</button>
</div>
</template>
<script>
/**
* You should first need to place these 2 lines of code in your APP ENTRY file, e.g. src/main.js
*
* import GAuth from 'vue-google-oauth2'
* Vue.use(GAuth, {clientId: '4584XXXXXXXX-2gqknkvdjfkdfkvb8uja2k65sldsms7qo9.apps.googleusercontent.com'})
*
*/
export default {
name: 'test',
props: [],
components: {
},
data () {
return {
isLoaded: false
}
},
computed: {
},
methods: {
handleClickSignIn(){
this.$gAuth.signIn(function (user) {
//on success do something
console.log('user', user)
}, function (error) {
//on fail do something
})
}
},
mounted(){
let that = this
let checkGauthLoad = setInterval(function(){
that.isLoaded = that.$gAuth.isLoaded()
console.log('checked', that.isLoaded)
if(that.isLoaded) clearInterval(checkGauthLoad)
}, 1000);
}
}
</script>
Проблема в том, что isLoaded()
метод никогда не возвращает true, при этом консоль Google Chrome сообщает мне каждый раз, когда я нажимаю на кнопку, что google api is not ready
это сообщение консоли плагина, выводимое, когда GoogleAuthInstance false
, Кто-нибудь может мне помочь?
2 ответа
Использование isInit
вместо isLoaded
так как последний будет / устарел.
Добавить в main.js
import GAuth from 'vue-google-oauth2'
Vue.use(GAuth, {
clientId: '....apps.googleusercontent.com',
scope: 'email',
prompt: 'consent',
fetch_basic_profile: true
})
new Vue({
...
render: (h) => h(App),
}).$mount("#app");