- vừa được xem lúc

Google Login trong Nuxtjs

0 0 130

Người đăng: Le Ngoc Son

Theo Viblo Asia

1. Auth

Authenticate là thứ rất quen thuộc của mỗi app, trong bài viết này mình sẽ giới thiệu auth module dành cho nuxt giúp bạn xử lý công việc này rất nhanh và dễ dàng.

2. Cài đặt

Trước hết là cài nuxt

yarn create nuxt-app nuxt-project

Cài đặt auth module

yarn add @nuxtjs/auth yarn add @nuxtjs/axios

thêm module vào nuxt.config.js

modules: [ '@nuxtjs/axios', '@nuxtjs/auth'
],

thêm file index.js vào thư mục store để active vuex cho project

chạy lệnh yarn dev và mở link lên xem

giờ chúng ta thử thêm middleware vào file pages/index.vue

export default { middleware: 'auth'
}

và kết quả là

vì chúng ta đã set middleware auth nhưng chưa xác thực user nên nuxt đã redirect chúng ta tới trang /login. Giờ chúng ta sẽ tiếp tục tạo file pages/login/index.vue

<template> <button class="login"> Login with Google </button>
</template>
<script>
</script>
<style lang="scss" scoped>
.login { box-sizing: border-box; position: relative; margin: 0.2em; padding: 0 15px 0 46px; border: none; text-align: left; line-height: 34px; white-space: nowrap; border-radius: 0.2em; font-size: 16px; color: #FFF; background: #DD4B39; &:before { content: ""; box-sizing: border-box; position: absolute; top: 0; left: 0; width: 34px; height: 100%; border-right: #BB3F30 1px solid; background: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/14082/icon_google.png') 6px 6px no-repeat; } &:focus { outline: none; background: #E74B37; } &:active { box-shadow: inset 0 0 0 32px rgba(0,0,0,0.1); } &:hover { cursor: pointer; }
}
</style>

Tiếp theo chúng ta cần tạo clientId của google https://console.developers.google.com/ chi tiết thì các bạn google sẽ có rất nhiều hướng dẫn. Thêm clientId vừa tạo dc vừa vào nuxt.config.js

auth: { strategies: { google: { client_id: '...' }, }
}

Sửa lại file login/index.vue

<template> <button class="login" @click="login"> Login with Google </button>
</template>
<script>
export default { methods: { login() { this.$auth.loginWith('google', { params: { prompt: "select_account" } }) } }
}
</script>
...

Sửa lại file pages/index.vue

<template> <div class="container"> <img :src="user.picture" alt=""> <p>{{ user.name }}</p> </div>
</template> <script>
export default { middleware: 'auth', computed: { user() { return this.$auth.user; } }
}
</script>
<style>
</style> 

Giờ bạn hãy mở trình duyệt lên, login và xem kết quả

Bình luận

Bài viết tương tự

- vừa được xem lúc

Ví dụ CRUD với Laravel và Vuejs.

1. Cài đặt Laravel. composer create-project --prefer-dist laravel/laravel vuelaravelcrud. .

0 0 141

- vừa được xem lúc

Bài 1: Cài đặt Vue và chạy chương trình Hello world đầu tiên

Ở bài đầu tiên này mình sẽ hướng dẫn các bài cài đặt VueJS vào project Laravel, sau đó chúng ta sẽ cùng xem những thứ cơ bản của Vue nhé. Vì Laravel đã hỗ trợ tích hợp VueJS nên việc cài đặt của chúng ta sẽ hết sức đơn giản.

0 0 125

- vừa được xem lúc

Lazy loading and code splitting in Vue.js

Việc giữ cho ứng dụng của bạn tải nhanh ngày càng khó hơn. Trong loạt bài này, tôi sẽ đi sâu vào các kỹ thuật tối ưu hiệu suất Vue và bạn có thể sử dụng trong các ứng dụng Vue.

0 0 103

- vừa được xem lúc

Validating Vue.js Forms Using Vuelidate

Introduction. Validate thông tin đầu vào trên các ứng dụng web là rất quan trọng.

0 0 201

- vừa được xem lúc

5 Good Practices mình đang sử dụng trong Vuejs

Mở đầu. Mình đã sử dụng vuejs được cũng được 1 năm trở lại đây.

0 0 87

- vừa được xem lúc

[P5] VueJS - Một vài Interpolations khác trong Vue

Ở bài viết trước, mình đã nói về một vài keyword trong Vue như v-if, v-else, v-show, v-for, ... Chúng thực chất là các syntax đặc biệt của Vue để thao tác linh hoạt với các DOM ảo, được gọi là Interpolations. Ngoài ra, Vue còn các Interpolations khác. Mục đích của nó thì đã quá rõ ràng, hiển thị tex

0 0 49