mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-14 07:26:52 +00:00
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { isBrowser } from './utils'
|
||
|
||
/**
|
||
* 获取默认密码
|
||
* 用户可以通过url中拼接参数,输入密码
|
||
* 输入过一次的密码会被存储在浏览器中,便于下一次免密访问
|
||
* 返回的是一组历史密码,便于客户端多次尝试
|
||
*/
|
||
export const getPasswordQuery = path => {
|
||
// 使用 URL 对象解析 URL
|
||
const url = new URL(path, isBrowser ? window.location.origin : '')
|
||
|
||
// 获取查询参数
|
||
const queryParams = Object.fromEntries(url.searchParams.entries())
|
||
|
||
// 请求中带着密码
|
||
if (queryParams.password) {
|
||
// 将已输入密码作为默认密码存放在 localStorage,便于下次读取并自动尝试
|
||
localStorage.setItem('password_default', queryParams.password)
|
||
}
|
||
|
||
// 获取路径部分
|
||
const cleanedPath = url.pathname
|
||
|
||
// 从 localStorage 中获取相关密码
|
||
const storedPassword = localStorage.getItem('password_' + cleanedPath)
|
||
const defaultPassword = localStorage.getItem('password_default')
|
||
|
||
// 将所有密码存储在一个数组中,并过滤掉无效值
|
||
const passwords = [
|
||
queryParams.password,
|
||
storedPassword,
|
||
defaultPassword
|
||
].filter(Boolean)
|
||
|
||
return passwords
|
||
}
|