Easy Auth
2026/1/17

简介
Easy Auth 是基于Better Auth的OIDC & SSO provider,开源可自行部署,类似于Auth0、Okta等商业化身份认证服务。
多个 Web 应用和 小程序 可以使用 Easy Auth 作为统一的身份认证服务,用户只需注册一个账号即可登录所有接入的应用。
使用
按README部署并设置为管理员
进入Apps页面,创建一个新的应用

可以填写多个回调地址,用于不同环境。请注意回调地址需要完全匹配

在Client App配置Better Auth的genericOAuth插件
export const authConfig: BetterAuthOptions = {
database: drizzleAdapter(env.web_chat, {
provider: "sqlite",
}),
plugins: [
genericOAuth({
config: [
{
providerId: "easy-auth",
clientId: process.env.EASY_AUTH_CLIENT_ID,
clientSecret: process.env.EASY_AUTH_CLIENT_SECRET,
discoveryUrl:
process.env.NODE_ENV === "production"
? "https://account.jaze.top/api/auth/.well-known/openid-configuration"
: "http://localhost:3000/api/auth/.well-known/openid-configuration",
pkce: true,
scopes: ["openid", "profile", "email", "offline_access"],
overrideUserInfo: true,
},
],
}),
],
trustedOrigins: [process.env.SITE_URL],
session: {
cookieCache: {
enabled: true,
maxAge: 5 * 60,
},
},
advanced: {
cookiePrefix: "wc",
},
};
支持Stateless Mode ,无需数据库存储session,你可以添加以下配置固定User ID
export const authConfig: BetterAuthOptions = {
// database: drizzleAdapter(env.web_chat, {
// provider: "sqlite",
// }),
databaseHooks: {
user: {
create: {
// @ts-ignore
before: (user) => {
return {
data: {
...user,
id: user.sub,
},
};
},
},
},
},
};
支持SSO插件,回调地址填写/api/auth/sso/callback/easy-auth
完整示例应用仓库:Web Chat,使用Cloudflare生态构建的多功能聊天应用