web扩展有2个窗口:
- popup是当你点击它时打开的窗口
- 内容是大致嵌入在站点中并在我指定的站点上显示的代码这是必要的,这个内容做同样的事情弹出,也就是说,它打开的形式,你可以从那里添加帖子。当我开始这样做时,我认为在这个内容中,你需要固定与popup中相同的授权,但当我做它时,出现了一个错误,我已经有了,我修复了,但这里它没有通过那个方法修复然后我认为你不能添加此授权并与扩展同步,如果用户未授权,他将被发送到扩展登录。我开始这样做,并试图从内容到弹出窗口发送请求,以便从那里获得令牌+身份验证状态。但是有一个问题,当弹出窗口关闭时,它会禁用所有脚本,并且不适用于它。然后我做了不同的事情,当我进入弹出窗口时,我将令牌和状态保存在chrome中。在js内容中,当我点击图标时,我检查了存储中的值,并根据状态显示了需要的内容。但是有一个问题,令牌并不总是有效的,如果在一定的时间后发送一个帖子,那么我就会得到一个过期的令牌错误。这里的问题是,我还不知道如何检查和发送一个新的令牌到内容
我试过了,但是效果很差
content.tsx
const checkAuth = async () => {
const auth = await chrome.storage.local.get()
setIsAuth(auth.isSignedIn)
setToken(auth.token)
}
popup.tsx
useEffect(() => {
getToken().then((token) => {
chrome.storage.local.set({ token })
})
chrome.storage.local.set({ isSignedIn })
}, [isSignedIn, getToken])
我使用了clerk auth
你可以试试这个
let accessed_token=localStorage.getItem('token');