Commit 1efef5ff authored by adamrusly's avatar adamrusly

new: login

parent 0b950a9f
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
"@quasar/extras": "^1.0.0", "@quasar/extras": "^1.0.0",
"axios": "^0.21.1", "axios": "^0.21.1",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"quasar": "^1.0.0" "quasar": "^1.0.0",
"vue-google-oauth2": "^1.5.8"
}, },
"devDependencies": { "devDependencies": {
"@quasar/app": "^2.0.0" "@quasar/app": "^2.0.0"
...@@ -12866,6 +12867,11 @@ ...@@ -12866,6 +12867,11 @@
"integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==", "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==",
"dev": true "dev": true
}, },
"node_modules/vue-google-oauth2": {
"version": "1.5.8",
"resolved": "https://registry.npmjs.org/vue-google-oauth2/-/vue-google-oauth2-1.5.8.tgz",
"integrity": "sha512-mATpPrLjzjAoUwgFC2feEZEhyoFyItPQSdEgX3m+rHI17sXLEdKzcMLmk+8B1obu4J/YVuVRR9A1afs+4VEk0Q=="
},
"node_modules/vue-hot-reload-api": { "node_modules/vue-hot-reload-api": {
"version": "2.3.4", "version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
...@@ -25891,6 +25897,11 @@ ...@@ -25891,6 +25897,11 @@
"integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==", "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==",
"dev": true "dev": true
}, },
"vue-google-oauth2": {
"version": "1.5.8",
"resolved": "https://registry.npmjs.org/vue-google-oauth2/-/vue-google-oauth2-1.5.8.tgz",
"integrity": "sha512-mATpPrLjzjAoUwgFC2feEZEhyoFyItPQSdEgX3m+rHI17sXLEdKzcMLmk+8B1obu4J/YVuVRR9A1afs+4VEk0Q=="
},
"vue-hot-reload-api": { "vue-hot-reload-api": {
"version": "2.3.4", "version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
"@quasar/extras": "^1.0.0", "@quasar/extras": "^1.0.0",
"axios": "^0.21.1", "axios": "^0.21.1",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"quasar": "^1.0.0" "quasar": "^1.0.0",
"vue-google-oauth2": "^1.5.8"
}, },
"devDependencies": { "devDependencies": {
"@quasar/app": "^2.0.0" "@quasar/app": "^2.0.0"
......
...@@ -18,7 +18,7 @@ module.exports = function (/* ctx */) { ...@@ -18,7 +18,7 @@ module.exports = function (/* ctx */) {
// --> boot files are part of "main.js" // --> boot files are part of "main.js"
// https://v1.quasar.dev/quasar-cli/boot-files // https://v1.quasar.dev/quasar-cli/boot-files
boot: [ boot: [
'google',
'axios', 'axios',
], ],
......
import GAuth from 'vue-google-oauth2'
export default ({ Vue }) => {
const gauthOption = {
clientId: '502899943335-f47psuotb2m4jq5019fnnl8mjg9p6k5j.apps.googleusercontent.com',
scope: 'profile email',
prompt: 'select_account',
// ux_mode: 'redirect',
// redirect_uri: 'http://localhost:8080/callback'
}
Vue.use(GAuth, gauthOption)
}
\ No newline at end of file
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
<q-tooltip>Notifications</q-tooltip> <q-tooltip>Notifications</q-tooltip>
</q-btn> </q-btn>
<q-btn round flat> <q-btn round flat>
<q-avatar size="26px"> <q-avatar size="26px" @click="loginGoogle">
<img src="https://cdn.quasar.dev/img/boy-avatar.png"> <img :src="defaultAvatar">
</q-avatar> </q-avatar>
<q-tooltip>Account</q-tooltip> <q-tooltip>Account</q-tooltip>
</q-btn> </q-btn>
...@@ -142,6 +142,18 @@ export default { ...@@ -142,6 +142,18 @@ export default {
name: 'MyLayout', name: 'MyLayout',
data () { data () {
return { return {
defaultAvatar: 'https://cdn.quasar.dev/img/boy-avatar.png',
userUpdate: {
token: '',
firstName: '',
lastName: '',
email: '',
avatar: '',
fullname: '',
id: '',
isAdmin: false,
isAuth: false
},
leftDrawerOpen: false, leftDrawerOpen: false,
search: '', search: '',
links1: [ links1: [
...@@ -178,6 +190,45 @@ export default { ...@@ -178,6 +190,45 @@ export default {
}, },
created () { created () {
this.fabYoutube = fabYoutube this.fabYoutube = fabYoutube
},
methods: {
async loginGoogle() {
try {
const googleUser = await this.$gAuth.signIn()
// const authCode = await this.$gAuth.getAuthCode()
// console.log('getAuthCode()',authCode)
if (!googleUser) {
return null
}
else{
const bio = googleUser.getBasicProfile()
this.userUpdate.token = ''
this.userUpdate.firstName = bio.getGivenName()
this.userUpdate.lastName = bio.getFamilyName()
this.userUpdate.email = bio.getEmail()
this.userUpdate.avatar = bio.getImageUrl()
this.userUpdate.fullname = bio.getName()
this.userUpdate.id = bio.getId()
this.userUpdate.isAdmin = false
this.userUpdate.isAuth = true
this.defaultAvatar = this.userUpdate.avatar
console.log(bio)
// this.upsertUser()
if (this.$route.query.redirect){
this.$router.push(this.$route.query.redirect)
}
else{
// this.$router.push('/')
}
}
} catch (error) {
//on fail do something
console.error(error)
return null
}
}
} }
} }
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment