当前位置: 首页 > 工具软件 > visitor.js > 使用案例 >

uni-starter设置路由visitor白名单,不强制跳转登录页,但设置无效

谷梁波
2023-12-01

遇到一个问题,因我做了小程序分包,导致本来想允许访客访问的页面,却总是被强制跳转到登录页面。
深层原因是设置的链接地址和common/appInit.js中373行附近的判断机制有问题导致。

本来是判断如果当前链接位于uni-starter.config.js中的visitor白名单时,不进行强制跳转到登录页,但实际情况是无效,原因是,visitor中配置的链接地址,如: pagesB/about/about,在appInit.js中,该页面实际链接是: …/…/pagesB/about/about,两者肯定是不一样的,必然被认为是不在白名单。

解决办法简单,在uni-starter.config.js中visitor的白名单,添加时这样添加:

"visitor" : [
			"/",//注意入口页必须直接写 "/"
			{"pattern":/^\/pages\/list.*/},	//支持正则表达式
			{"pattern":/^\/pagesA\/login-page.*/},
			"/pages/common/webview/webview",
			"/pages/grid/grid",
			"/pages/ucenter/ucenter",
			"/pages/ucenter/guestbook/guestbook",
			"/pagesA/about/about",
			"/pagesA/settings/settings",
			"../../pagesB/create/create",
			"../../pagesB/create/create"
		],

这里面有的加有的不加…/…/,是和你链接跳转的地址来源有关,如果无法判断,可以去common/appInit.js中375行附近,打印一下url和item,就看到两者为何被判断为不一致了,按实际情况修改即可

 类似资料: