GraphQL 是一种新型的查询语言,它将所有的 API 查询操作都集成到一个请求中,而且每一个请求只返回客户端所需的数据。这种灵活性和高可用性为前端开发者带来了新的机遇和挑战。
当我们想要使用 GraphQL API 时,如果这个 API 是未公开的、需要身份验证的,我们就需要设置 HTTP 头和身份验证。这篇文章将介绍如何设置 HTTP 头和身份验证以访问未公开的 GraphQL API。
HTTP 头的设置
一、如何设置 HTTP 头
在使用 Fetch 发起请求时,我们可以设置 Request 的 headers 信息。下面是一个简单的 Fetch 请求的示例,这个请求使用了一个自定义的 Authorization 头:
----------------- - ------- ------- -------- - --------------- ---------------------- ---------------- ------- -------- -- ----- -- -- - ---- - -- --
我们来看一下这段代码中的 headers 部分。在 headers 中,我们可以通过键值对的方式设置每一个 HTTP 头的键名和键值。比如上面这个 Authorization 头,我们设置了它的键名和值分别为 Bearer 和 myToken。这样,在请求进入服务器时,服务器会根据这个头的值进行身份验证。
二、几个常用的 HTTP 头
在向 GraphQL API 发送请求时,我们需要设置一些常见的 HTTP 头来保证请求能够被正确处理。下面是一些常用的 HTTP 头及其作用:
- Content-Type:表示请求的数据格式。这里我们使用了 application/graphql,表示这是一个 GraphQL 格式的请求。
- Accept:表示客户端接受的数据格式。我们可以使用 application/json,表示客户端接受的数据是 JSON 格式的。
- Authorization:表示身份验证信息。我们可以使用 Bearer Token 或者 Basic Auth 等方式进行身份验证。
身份验证的设置
一、如何进行身份验证
当我们想要访问一个未公开的 GraphQL API 时,我们需要使用身份验证来证明我们有权限访问这个 API。下面是一个使用 Bearer Token 进行身份验证的示例:
----------------- - ------- ------- -------- - --------------- ---------------------- ---------------- ------- --------- -- ----- -- -- - ---- - -- --
在这个示例中,我们设置了 Authorization 头,并使用了 Bearer Token 的方式进行身份验证。这个 token 可以是凭据、令牌或票据等身份验证信息,它由 API 管理人员提供。
二、常用的身份验证方式
除了 Bearer Token,HTTP 协议还支持其他的身份验证方式,比如 Basic Auth、Digest Auth、OAuth20 等。这里我们列举一下常用的身份验证方式:
- Bearer Token:这种方式是最常见的一种方式,在 Authorization 头中传递一个 token,表示用户的身份识别信息。Token 只与用户账号绑定,可以被用于多种不同的请求访问和分享。
- Basic Auth:这种方式是将用户名和密码使用 Base64 编码之后,传递到 Authorization 头中,用冒号隔开。这种方式安全性较低,一般仅用于开发与测试环境。
- Digest Auth:这种方式是将密码加密之后,传递到 Authorization 头中。这种方式安全性较高,一般用于正式线上环境。
总结
GraphQL 的出现使得前端开发者更加容易的进行 API 的调用和数据请求。当我们想要使用一个未公开的 GraphQL API 时,可以通过设置 HTTP 头和身份验证来实现权限控制。这篇文章介绍了 HTTP 头的设置和几种常见的身份验证方式,并给出了相关代码示例。希望大家通过本文的介绍,可以更加简单地正确地设置 HTTP 头和身份验证,实现 API 的安全调用。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6647e8ccd3423812e4672854