通过你的网络应用认证你的chrome扩展用户的方法

194 阅读2分钟

在Chrome扩展中,有许多方法可以验证用户。在本文中,我们将探讨如何从前端Web应用程序向Chrome扩展程序发送JWTtoken,以便对用户进行认证,并能够从Chrome扩展程序对您的API进行认证调用。

浏览器扩展

第一步是在本教程中使用一个Chrome扩展。你可以在这里找到本教程中使用的简单Chrome扩展的代码。

我们使用的是chrome扩展的manifest V2版本。

在我们的Chrome扩展中,我们有两个文件,manifest.json和background.js文件。

在manifest.json文件中,我们有三个值得注意的属性,它们描述如下。

  • 密钥。这是用来确保我们每次在浏览器中安装Chrome扩展时都有相同的Chrome扩展ID。
  • background。该属性描述了我们之前添加的background.js文件。
  • externally_connectable。这个属性使我们能够向chrome扩展程序表明我们希望从哪些网站接收数据。在本例中,我们将从localhost接收数据。

要安装该扩展,请按照提供的步骤进行 这里.

外部消息监听器

在background.js文件中,我们设置了一个外部消息监听器,这样我们就能够接收从前端应用程序发送的消息(token)。下面是监听器的代码片段

chrome.runtime.onMessageExternal.addListener((request, sender, sendResponse) => {

我们为监听器提供一个回调函数,在回调中,我们检查请求是否包含jwt,如果包含,我们就把它记录下来,这样我们就可以在chrome扩展的后台页面的控制台中看到它。然后我们向令牌的发送者发送一个响应,让他们知道令牌被成功接收。下面是一张截图,显示Chrome扩展后台控制台中的令牌。

在这一点上,我们已经得到了令牌,然后你可以把它存储在chrome的存储空间中,或者用它来向你的API发出请求。

前端应用

我还使用CRA创建了一个简单的React应用程序,用来向chrome扩展发送JWT令牌。

下面是向已安装的Chrome扩展程序发送令牌的片段。

const sendTokenToChromeExtension = ({ extensionId, jwt}) => {

chrome的API被包裹在sendTokenToChromeExtension函数中。在该函数中,我们使用Chrome运行时API,通过指定扩展的唯一ID和有效载荷(本例中为JWT令牌)向其发送消息。如果我们没有得到我们在Chrome扩展中设置的成功真值,那么我们就知道有问题了,否则我们就在控制台记录从Chrome扩展中返回的响应信息。然后我们可以在控制台中看到它,如下图所示。

下面是将令牌发送到前端的完整文件片段。

medium.com/media/62c70…

本教程到此结束,感谢您的阅读。