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.
globalMiddlewareBooleanfalseMengaktifkan/menonaktifkan middleware untuk digunakan secara global.
enableMiddlewareBooleantrueMengaktifkan/menonaktifkan middleware bawaan.
stores.state.namespaceStringauthIni adalah namespace untuk digunakan untuk Nuxt Usestate.
stores.pinia.enabledBooleanfalse Aktifkan opsi ini untuk menggunakan Pinia Store, Bey Default Ini dinonaktifkan dan Nuxt's useState digunakan sebagai gantinya.
stores.pinia.namespaceStringauthIni adalah namespace untuk digunakan untuk toko pinia.
stores.local.enabledBooleantrueAktifkan opsi ini untuk menggunakan toko LocalStorage.
stores.local.prefixStringauth.Ini menetapkan awalan LocalStorage.
stores.session.enabledBooleantrueAktifkan opsi ini untuk menggunakan Sesi SessionStorage.
stores.session.prefixStringauth.Mirip dengan opsi LocalStorage, ini adalah awalan untuk penyimpanan sesi.
stores.cookie.enabledBooleantrueAktifkan opsi ini untuk menggunakan penyimpanan cookie.
stores.cookie.prefixStringauth.Mirip dengan opsi LocalStorage, ini adalah awalan untuk penyimpanan cookie.
stores.cookie.optionsObject{ path: '/' }Opsi penyimpanan cookie default.
redirectStrategyquery | storagestorage Jenis strategi pengalihan yang ingin Anda gunakan, utilisng storage localstorage untuk pengalihan, query menggunakan parameter kueri rute.
tokenValidationIntervalBoolean | NumberfalseIni 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.
resetOnResponseErrorBoolean | FunctionfalseSaat 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:
clientWindowBooleanfalseAktifkan/nonaktifkan penggunaan popup untuk otentikasi klien.
clientWidthNumber400Lebar jendela klien.
clientHieghtNumber600Lebar jendela klien.
Alias yang tersedia untuk digunakan dalam nuxt
#auth/runtime#auth/utils#auth/providers