function getUuid() { let uuid = '' try { uuid = localStorage.getItem(UUID_KEY) } catch (e) { uuid = UUID_VALUE } if (!uuid) { uuid = Date.now() + '' + Math.floor(Math.random() * 1e7) try { localStorage.setItem(UUID_KEY, uuid) } catch (e) { localStorage.setItem(UUID_KEY, UUID_VALUE) } } return uuid }
时间: 2024-03-31 21:37:38 浏览: 85
这是一个 JavaScript 函数,它用于生成一个唯一标识符(UUID)。它首先尝试从 localStorage 中获取一个 UUID,如果没有获取到,则生成一个新的 UUID,并将其存储在 localStorage 中,以便下次使用时可以直接获取。如果存储时出现错误,则将 UUID 存储在一个常量中,以便下次使用时可以直接使用。最后,函数返回生成或获取到的 UUID。
相关问题
vue项目如何使用uuid设置token
在 Vue 项目中使用 uuid 生成 token 并存储在本地,可以按照以下步骤操作:
1. 安装 uuid 库
使用 npm 安装 uuid 库:
```
npm install uuid
```
2. 在需要生成 token 的地方导入 uuid 库
在需要生成 token 的地方导入 uuid 库:
```javascript
import { v4 as uuidv4 } from 'uuid'
```
3. 使用 uuid 生成 token
可以在登录成功后使用 uuid 生成 token,并将其存储在本地的 localStorage 中:
```javascript
const token = uuidv4()
localStorage.setItem('token', token)
```
4. 在请求头中添加 token
在需要发送请求的地方,可以从 localStorage 中获取 token 并添加到请求头中:
```javascript
const token = localStorage.getItem('token')
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`
```
这样就可以在 Vue 项目中使用 uuid 生成 token 并存储在本地,然后在请求头中添加 token 了。
使用浏览器提供的localStorage或IndexedDB存储一个随机生成的唯一标识符,每次访问网站时从存储中读取。
是的,这是一种获取浏览器不变的唯一标识符的方法。具体实现可以参考以下代码:
```javascript
// 生成一个随机的唯一标识符
function generateUUID() {
var d = new Date().getTime();
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
return uuid;
}
// 检查浏览器是否支持localStorage或IndexedDB
function isLocalStorageSupported() {
try {
var testKey = 'test';
var storage = window.localStorage;
storage.setItem(testKey, '1');
storage.removeItem(testKey);
return true;
} catch (error) {
return false;
}
}
function isIndexedDBSupported() {
return 'indexedDB' in window;
}
// 从localStorage或IndexedDB中读取唯一标识符
function getUniqueID() {
var uniqueID = '';
if (isLocalStorageSupported()) {
var storage = window.localStorage;
uniqueID = storage.getItem('uniqueID');
if (!uniqueID) {
uniqueID = generateUUID();
storage.setItem('uniqueID', uniqueID);
}
} else if (isIndexedDBSupported()) {
var request = window.indexedDB.open('uniqueID', 1);
request.onerror = function(event) {
console.log('Failed to open indexedDB');
};
request.onupgradeneeded = function(event) {
var db = event.target.result;
var objectStore = db.createObjectStore('uniqueID', { keyPath: 'id' });
var uniqueID = generateUUID();
objectStore.add({ id: 1, value: uniqueID });
};
request.onsuccess = function(event) {
var db = event.target.result;
var transaction = db.transaction(['uniqueID'], 'readwrite');
var objectStore = transaction.objectStore('uniqueID');
var getRequest = objectStore.get(1);
getRequest.onsuccess = function(event) {
if (getRequest.result) {
uniqueID = getRequest.result.value;
} else {
uniqueID = generateUUID();
objectStore.add({ id: 1, value: uniqueID });
}
};
};
} else {
uniqueID = generateUUID();
}
return uniqueID;
}
```
以上代码中,`generateUUID()`函数用于生成一个随机的唯一标识符,`isLocalStorageSupported()`和`isIndexedDBSupported()`函数用于检查浏览器是否支持localStorage或IndexedDB,`getUniqueID()`函数用于从localStorage或IndexedDB中读取唯一标识符,如果没有则生成一个新的唯一标识符并存储到localStorage或IndexedDB中。
阅读全文