本文介绍简单的身份校验示例场景及结果。

代码

收到客户端请求后,ER读取请求中携带的AUTH_HEADER_KEY头,如果值和AUTH_HEADER_VALUE一致则正常响应URL对应的文件,否则则拒绝该请求。

/**
 * 在ER代码内置AUTH_HEADER_VALUE,用作简单的鉴权
 * 客户端携带AUTH_HEADER_KEY的值如果和AUTH_HEADER_VALUE不一致则拒绝该请求
 */
const AUTH_HEADER_KEY = "AUTH_HEADER_KEY"
const AUTH_HEADER_VALUE = "Value-098372683"

async function handleRequest(request) {
  const value = request.headers.get(AUTH_HEADER_KEY)

  if (value === AUTH_HEADER_VALUE) {
    // value和ER内置的AUTH_HEADER_VALUE一致,通过校验,请求url内容并返给客户端
    return fetch(request.url)
  }

  // value和ER内置的AUTH_HEADER_VALUE不一致,拒绝该请求
  return new Response("403", {
    status: 403,
  })
}

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request))
})

结果

请求时不带AUTH_HEADER_KEY 或者值错误,则拒绝该请求:示例1
请求时携带正确的AUTH_HEADER_KEY ,则可以响应正常的内容:示例2