providers/bungie
default()
default(options): OAuthConfig<Record<string, any>>
在您的页面上添加 Bungie 登录。
设置
回调 URL
https://example.com/api/auth/callback/bungie
配置
import { Auth } from "@auth/core"
import Bungie from "@auth/core/providers/bungie"
const request = new Request(origin)
const response = await Auth(request, {
providers: [
Bungie({
clientId: BUNGIE_CLIENT_ID,
clientSecret: BUNGIE_CLIENT_SECRET,
headers: { "X-API-Key": BUNGIE_API_KEY },
}),
],
})
资源
配置
Bungie 要求所有网站运行 HTTPS(包括本地开发实例)。
Bungie 不允许您使用 localhost 作为网站 URL,您需要使用 https://127.0.0.1:3000
导航到 https://www.bungie.net/en/Application 并填写所需详细信息
- 应用程序名称
- 应用程序状态
- 网站
- OAuth 客户端类型
- 机密
- 重定向 URL
- 范围
访问 Bungie.net 通知、成员资格和最近的 Bungie.Net 论坛活动等项目。
- 来源标头
以下指南可能会有所帮助
#@example 服务器
您需要编辑您的主机文件并将您的站点指向 127.0.0.1
在 Windows 上(以管理员身份运行 PowerShell)
Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "127.0.0.1`tdev.example.com" -Force
127.0.0.1 dev.example.com
创建证书
使用 openssl 为 localhost 创建证书很容易。只需将以下命令放入终端。输出将是两个文件:localhost.key 和 localhost.crt。
openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj "/CN=localhost" -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
Windows
OpenSSL 可执行文件与 Git for Windows 一起分发。安装后,您将在 C:/Program Files/Git/mingw64/bin
中找到 openssl.exe 文件,如果您尚未完成,可以将其添加到系统 PATH 环境变量中。
添加环境变量 OPENSSL_CONF=C:/Program Files/Git/mingw64/ssl/openssl.cnf
req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj "/CN=localhost"
创建目录 certificates
并放置 localhost.key
和 localhost.crt
您可以在项目的根目录中创建一个 server.js
,并使用 node server.js
运行它,以在本地测试使用 Bungie 集成的登录
const { createServer } = require("https")
const { parse } = require("url")
const next = require("next")
const fs = require("fs")
const dev = process.env.NODE_ENV !== "production"
const app = next({ dev })
const handle = app.getRequestHandler()
const httpsOptions = {
key: fs.readFileSync("./certificates/localhost.key"),
cert: fs.readFileSync("./certificates/localhost.crt"),
}
app.prepare().then(() => {
createServer(httpsOptions, (req, res) => {
const parsedUrl = parse(req.url, true)
handle(req, res, parsedUrl)
}).listen(3000, (err) => {
if (err) throw err
console.log("> Ready on https://127.0.0.1:3000")
})
})
备注
默认情况下,Auth.js 假设 Bungie 提供商基于 OAuth 2 规范。
Bungie 提供商附带 默认配置。要为您的用例覆盖默认值,请查看 自定义内置 OAuth 提供商。
参数
参数 | 类型 |
---|---|
options | OAuthUserConfig <Record <string , any >> |
返回值
OAuthConfig
<Record
<string
, any
>>