NUXT的替代驗證模塊
該模塊是作為 @nuxtjs/auth的替代方法,除非這僅適用於NUXT3,僅沒有向後兼容的支持。
@nuxt-alt/auth
和@nuxt-alt/http
依賴性添加到您的項目yarn add @nuxt-alt/auth @nuxt-alt/http
@nuxt-alt/auth
和@pinia/nuxt
添加到nuxt.config.ts
的modules
部分注意:您不需要指定@nuxt-alt/http
,它將自動添加,但是如果要手動添加它,請確保它在Auth模塊下方(如果您使用的(如果您使用)在代理模塊上方)。它也不需要PINIA,默認情況下將使用NUXT的useState
。
export default defineNuxtConfig ( {
modules : [
'@nuxt-alt/auth'
] ,
auth : {
/* module options */
}
} ) ;
閱讀文檔
該模塊現在使用“@nuxt-alt/http”來函數,該模塊擴展了Ohmyfetch。請注意,如果您使用data
發布數據,則現在需要使用body
因為這是ohmyfetch
使用的。如果您打算使用SSR,請考慮使用@nuxt-alt/proxy
模塊。
可以使用useAuth()
組合來訪問auth方法。
大多數選項直接從 @nuxtjs/auth模塊中獲取。此外,還有一些額外的選項。
globalMiddleware
Boolean
false
啟用/禁用中間件可以在全球使用。
enableMiddleware
Boolean
true
啟用/禁用內置中間件。
stores.state.namespace
String
auth
這是用於NUXT USESTATE的名稱空間。
stores.pinia.enabled
Boolean
false
啟用此選項使用PINIA商店,BEY默認情況下,這是禁用的,而NUXT的useState
則使用。
stores.pinia.namespace
String
auth
這是用於Pinia商店的名稱空間。
stores.local.enabled
Boolean
true
啟用此選項可以使用LocalStorage Store。
stores.local.prefix
String
auth.
這設置了Localstorage前綴。
stores.session.enabled
Boolean
true
啟用此選項使用SessionStorage Store。
stores.session.prefix
String
auth.
類似於LocalStorage選項,這是會話存儲的前綴。
stores.cookie.enabled
Boolean
true
啟用此選項可以使用cookie存儲。
stores.cookie.prefix
String
auth.
類似於LocalStorage選項,這是Cookie存儲的前綴。
stores.cookie.options
Object
{ path: '/' }
默認的cookie存儲選項。
redirectStrategy
query | storage
storage
您要使用的重定向策略的類型,用於重定向的localStorage的storage
使用,使用路由查詢參數query
。
tokenValidationInterval
Boolean | Number
false
這是實驗性的。如果設置為true,則默認間隔為1000ms,否則將時間設置為毫秒。這是試圖驗證令牌到期的嘗試的頻率。
resetOnResponseError
Boolean | Function
false
啟用後,當任何響應中有401個錯誤時,它將重置。您可以將其轉變為自己處理此問題的函數:
auth: {
//... module options
resetOnResponseError : ( error , auth , scheme ) => {
if ( error . response . status === 401 ) {
scheme . reset ?. ( )
auth . redirect ( 'login' )
}
} ,
}
用戶信息可以像打字稿一樣編輯:
declare module '@nuxt-alt/auth' {
interface UserInfo {
email : string
name : string
}
}
除了身份令牌;
默認情況下, $auth.strategy
getter使用的Scheme
類型沒有token
或refreshToken
屬性類型。為此,添加了$auth.refreshStrategy
和$auth.tokenStrategy
getter。他們都做同樣的事情,這只是用於類型提示。
OAuth2現在有了客戶窗口驗證,這要歸功於此拉的請求:nuxt-community/auth-module#1746
屬性已更改為:
clientWindow
Boolean
false
啟用/禁用使用彈出式驗證的使用。
clientWidth
Number
400
客戶端窗口的寬度。
clientHieght
Number
600
客戶端窗口的寬度。
可在NUXT中使用的可用別名
#auth/runtime
#auth/utils
#auth/providers