Modul Auth Alternatif untuk Nuxt
Modul ini dimaksudkan sebagai alternatif untuk @nuxtjs/auth, kecuali ini untuk Nuxt3 hanya tanpa dukungan kompatibilitas ke belakang.
@nuxt-alt/auth
dan @nuxt-alt/http
ketergantungan ke proyek Anda yarn add @nuxt-alt/auth @nuxt-alt/http
@nuxt-alt/auth
dan @pinia/nuxt
ke bagian modules
nuxt.config.ts
Catatan: Anda tidak perlu menentukan @nuxt-alt/http
, itu akan secara otomatis ditambahkan tetapi jika Anda ingin menambahkannya secara manual, pastikan itu di bawah modul auth (dan di atas modul proxy jika Anda menggunakannya). Itu juga tidak membutuhkan pinia itu akan menggunakan Nuxt's useState
secara default.
export default defineNuxtConfig ( {
modules : [
'@nuxt-alt/auth'
] ,
auth : {
/* module options */
}
} ) ;
Baca dokumentasi
Modul sekarang menggunakan '@nuxt-alt/http' untuk berfungsi, modul itu memanjang ohmyfetch. Harap dicatat bahwa jika Anda menggunakan data
untuk memposting data, Anda sekarang perlu menggunakan body
karena inilah yang digunakan ohmyfetch
. Jika Anda bermaksud menggunakan SSR, harap pertimbangkan untuk menggunakan modul @nuxt-alt/proxy
.
Komposisi useAuth()
tersedia untuk digunakan untuk mengakses metode auth.
Sebagian besar opsi diambil langsung dari modul @nuxtjs/auth. Selain itu ada beberapa opsi tambahan yang tersedia.
globalMiddleware
Boolean
false
Mengaktifkan/menonaktifkan middleware untuk digunakan secara global.
enableMiddleware
Boolean
true
Mengaktifkan/menonaktifkan middleware bawaan.
stores.state.namespace
String
auth
Ini adalah namespace untuk digunakan untuk Nuxt Usestate.
stores.pinia.enabled
Boolean
false
Aktifkan opsi ini untuk menggunakan Pinia Store, Bey Default Ini dinonaktifkan dan Nuxt's useState
digunakan sebagai gantinya.
stores.pinia.namespace
String
auth
Ini adalah namespace untuk digunakan untuk toko pinia.
stores.local.enabled
Boolean
true
Aktifkan opsi ini untuk menggunakan toko LocalStorage.
stores.local.prefix
String
auth.
Ini menetapkan awalan LocalStorage.
stores.session.enabled
Boolean
true
Aktifkan opsi ini untuk menggunakan Sesi SessionStorage.
stores.session.prefix
String
auth.
Mirip dengan opsi LocalStorage, ini adalah awalan untuk penyimpanan sesi.
stores.cookie.enabled
Boolean
true
Aktifkan opsi ini untuk menggunakan penyimpanan cookie.
stores.cookie.prefix
String
auth.
Mirip dengan opsi LocalStorage, ini adalah awalan untuk penyimpanan cookie.
stores.cookie.options
Object
{ path: '/' }
Opsi penyimpanan cookie default.
redirectStrategy
query | storage
storage
Jenis strategi pengalihan yang ingin Anda gunakan, utilisng storage
localstorage untuk pengalihan, query
menggunakan parameter kueri rute.
tokenValidationInterval
Boolean | Number
false
Ini eksperimental. Jika disetel ke true, interval default adalah 1000ms, jika tidak atur waktu dalam milidetik. Ini adalah seberapa sering modul dengan upaya untuk memvalidasi token untuk kedaluwarsa.
resetOnResponseError
Boolean | Function
false
Saat diaktifkan itu akan diatur ulang ketika ada kesalahan 401 dalam salah satu tanggapan. Anda dapat mengubah ini menjadi fungsi untuk menangani ini sendiri:
auth: {
//... module options
resetOnResponseError : ( error , auth , scheme ) => {
if ( error . response . status === 401 ) {
scheme . reset ?. ( )
auth . redirect ( 'login' )
}
} ,
}
Informasi Pengguna dapat diedit seperti itu untuk TypeScript:
declare module '@nuxt-alt/auth' {
interface UserInfo {
email : string
name : string
}
}
Selain token auth;
Secara default $auth.strategy
Getter menggunakan jenis Scheme
yang tidak memiliki tipe properti token
atau refreshToken
. Untuk membantu ini, A $auth.refreshStrategy
dan A $auth.tokenStrategy
Getter telah ditambahkan untuk mengetik. Mereka semua melakukan hal yang sama, ini hanya dimaksudkan untuk mengisyaratkan tipe.
OAuth2 sekarang memiliki otentikasi jendela klien berkat permintaan tarik ini: nuxt-community/auth-module#1746
Properti telah diubah menjadi:
clientWindow
Boolean
false
Aktifkan/nonaktifkan penggunaan popup untuk otentikasi klien.
clientWidth
Number
400
Lebar jendela klien.
clientHieght
Number
600
Lebar jendela klien.
Alias yang tersedia untuk digunakan dalam nuxt
#auth/runtime
#auth/utils
#auth/providers