| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import Vue from 'vue'
- import FingerprintJS from '@fingerprintjs/fingerprintjs'
- const USER_ACCESS_TOKEN = 'ACCESS-TOKEN'
- const USER_REFRESH_TOKEN = 'REFRESH-TOKEN'
- const USER_INFO = 'TNB-USERINFO'
- /**
- * 设置已登入用户的 token
- *
- * @param {Object} userToken
- */
- export function setUserToken(userToken) {
- const accessToken = userToken.accessToken
- const accessExpireAt = userToken.accessExpireAt
- localStorage.setItem(USER_ACCESS_TOKEN,
- JSON.stringify({
- accessToken,
- accessExpireAt
- })
- )
- const refreshToken = userToken.refreshToken
- const refreshExpireAt = userToken.refreshExpireAt
- localStorage.setItem(USER_REFRESH_TOKEN,
- JSON.stringify({
- refreshToken,
- refreshExpireAt
- })
- )
- }
- /**
- * 获取已登入用户的访问令牌
- */
- export function getAccessToken() {
- const result = localStorage.getItem(USER_ACCESS_TOKEN)
- if (result !== undefined && result !== null) {
- const token = JSON.parse(result)
- const t = new Date().getTime()
- if (token.accessExpireAt > t) {
- return token.accessToken
- }
- localStorage.removeItem(USER_ACCESS_TOKEN)
- }
- return null
- }
- /**
- * 获取已登入的刷新令牌
- */
- export function getRefreshToken() {
- const result = localStorage.getItem(USER_REFRESH_TOKEN)
- if (result !== undefined && result !== null) {
- const token = JSON.parse(result)
- const t = new Date().getTime()
- if (token.refreshExpireAt > t) {
- return token.refreshToken
- }
- localStorage.removeItem(USER_REFRESH_TOKEN)
- }
- return null
- }
- /**
- * 设置已登入用户信息
- *
- * @param {Object} data
- */
- export function setAuthedUser(data) {
- localStorage.setItem(USER_INFO, JSON.stringify(data))
- }
- /**
- * 更新已登入用户信息
- *
- * @param {Object} data
- */
- export function updateAuthedUser(data) {
- localStorage.setItem(USER_INFO, JSON.stringify(data))
- }
- /**
- * 获取已登入用户信息
- */
- export function getAuthedUser() {
- const data = localStorage.getItem(USER_INFO) || null
- return data !== null ? JSON.parse(data) : null
- }
- /**
- * 删除已登入用户相关缓存信息
- */
- export function removeAll() {
- localStorage.removeItem(USER_ACCESS_TOKEN)
- localStorage.removeItem(USER_REFRESH_TOKEN)
- localStorage.removeItem(USER_INFO)
- }
- /**
- * 浏览器指纹
- */
- export async function getBrowserFingerprint() {
- // 初始化FingerprintJS
- const fp = await FingerprintJS.load()
- // 获取访问者的指纹
- const result = await fp.get()
- const {
- plugins,
- ...components
- } = result.components
- const extendedComponents = {
- ...components
- }
- // const deviceInfo = JSON.stringify(extendedComponents)
- const fingerprintId = FingerprintJS.hashComponents(extendedComponents)
- Vue.$cookies.set('fp', fingerprintId, -1)
- }
|