标签: edge-function

由于 _middleware.ts 中的 jsonwebtoken,Nextjs 构建失败

希望获得有关 Vercel 部署的一些帮助。我创建了一个 _middleware.ts 文件,用于检查用户 cookie 中的 JWT。

import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'
import { JwtPayload, verify } from 'jsonwebtoken'

export async function middleware(req: NextRequest) {
  let response = NextResponse.next()
  const url = req.nextUrl.clone()

  const token = req.cookies['allow-list']

  if (!token || token === 'deleted') {
    return response 
  }

  try {
    const decodedToken = verify(
      token,
      process.env.TOKEN_SECRET as string
    ) as JwtPayload
  } catch (e) {}

  return response
}
Run Code Online (Sandbox Code Playgroud)

但是,正因为如此,当我尝试构建项目时,出现以下错误:“中间件页面/_middleware 中不允许动态代码评估(例如“eval”、“新函数”)”。有没有解决的办法?当我在本地运行它时它有效。

[22:59:29.409] Cloning …
Run Code Online (Sandbox Code Playgroud)

javascript next.js vercel edge-function

7
推荐指数
2
解决办法
4233
查看次数

以管理员身份从边缘功能访问 SUPABASE 数据库

我来自 Firebase 函数...我可以在哪里使用管理库从函数访问数据库,绕过所有安全规则?在supabase 上我还没有找到一种方法来做到这一点,文档非常稀缺。现在,我使用此代码作为请求该函数的用户从函数访问数据库:

const supabaseClient = createClient(
      Deno.env.get("SUPABASE_URL") ?? "",
      Deno.env.get("SUPABASE_ANON_KEY") ?? "",
      { global: { headers: { Authorization: req.headers.get("Authorization")! } } }
    );
Run Code Online (Sandbox Code Playgroud)

但是对于我的一个功能,我必须绕过所有策略进行访问,因为该功能是“admin”,当我删除此代码中的第三个参数行时(这是我发现的唯一模糊的解释如何做到这一点)我得到错误:

AuthApiError:无效声明:缺少子声明...

我也尝试更改SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY,同样的错误。

javascript firebase supabase supabase-database edge-function

5
推荐指数
1
解决办法
1331
查看次数

从 JS 到 Cloudflare Workers 不存在“Access-Control-Allow-Origin”标头错误

我在 Cloudflare Workers 上有一个 Javascript 边缘函数。它唯一做的就是检查特定标头并返回包含相应值的 JSON

请参阅下面的代码

async function handleRequest(request) {

  const url = new URL(request.url);

  const psk_db = await KV_STORAGE.get(request.headers.get(PRESHARED_AUTH_HEADER_KEY));


  if (psk_db === null) {
    return new Response("Access denied", { status: 404 });
  }
  else{
    //calculate number

    //return JSON
    const data = {
      pswd: psk_db,
    };

    json = JSON.stringify(data, null, 2);
  }

  return new Response(json, {
      headers: {
        'content-type': 'application/json;charset=UTF-8',
        'Access-Control-Allow-Origin': url.origin,
      },
    })

}



addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});
Run Code Online (Sandbox Code Playgroud)

现在,该函数在 cloudflare 测试环境中运行良好,但是当我尝试使用运行此 javascript 函数的按钮从 html 页面请求时 …

javascript cors cloudflare-workers edge-function

2
推荐指数
1
解决办法
2086
查看次数