Polar

Polar是一个面向开发者的支付基础设施。它开箱即用地提供了许多面向开发者的支付、结账等集成。此插件帮助您将Polar与Better Auth集成,使您的认证和支付流程无缝衔接。

该插件由Polar团队维护。如有错误、问题或功能请求,请访问Polar GitHub仓库

安装

安装插件

首先,安装插件:

npm install @polar-sh/better-auth

安装Polar SDK

接下来,在您的服务器上安装Polar SDK:

npm install @polar-sh/sdk

将插件添加到您的auth配置中

auth.ts
import { betterAuth } from "better-auth";
import { polar } from "@polar-sh/better-auth";
import { Polar } from "@polar-sh/sdk";
 
const client = new Polar({
    accessToken: process.env.POLAR_ACCESS_TOKEN,
    // 如果您使用的是Polar沙箱环境,请使用'sandbox'
    // 请记住,访问令牌、产品等在环境之间完全分离。
    // 例如,在生产环境中获得的访问令牌在沙箱环境中不可用。
    server: 'production'
});
 
const auth = betterAuth({
    // ... Better Auth配置
    plugins: [
        polar({
            client,
            // 在注册时启用自动创建Polar客户
            createCustomerOnSignUp: true,
            // 启用客户门户
            enableCustomerPortal: true, // 为已认证用户部署在/portal下
            // 配置结账
            checkout: {
                enabled: true,
                products: [
                    {
                        productId: "123-456-789", // Polar仪表板中的产品ID
                        slug: "pro" // 自定义slug便于在结账URL中引用,例如 /checkout/pro
                    }
                ],
                successUrl: "/success?checkout_id={CHECKOUT_ID}"
            },
            // 传入的Webhooks处理程序将安装在/polar/webhooks
            webhooks: {
                secret: process.env.POLAR_WEBHOOK_SECRET,
                onPayload: ...,
            }
        })
    ]
});

不需要客户端配置。您不需要向createAuthClient函数传递任何配置选项。

有关配置选项和更多信息,请查看Polar的Better Auth文档

On this page