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