@frigear-nu/oauth-server (英语)
OAuth 2.0 / OpenID 连接服务器用于 friger 生态系统. 登记册 应用程序,将其限制为用户
通过您的应用程序(授权代码与 PKCE 相通, 旋转) , 让这些用户签名
刷新地标,RS256 ID地标,RFC 7662回想. 用户可管理哪些应用程序和范围
赠款遵循 @frigear-nu/auth (许可,角色来自 @frigear-nu/authorization页:1
索赔来自 oauth:claims 涅盘钩.
快速设置
要求数 @nuxthub/core 财务报告和审定财务报表 @frigear-nu/users (服务器模式). @frigear-nu/menu (帐砖)和 @nuxt/ui
(已运出页)是可选的.
export default defineNuxtConfig({
modules: ['@frigear-nu/menu', '@frigear-nu/users', '@frigear-nu/oauth-server'],
oauthServer: {
issuer: 'https://id.example.com',
settings: { pages: { admin: true, applications: true } },
},
})
创建签名密钥并通过环境曝光(公用密钥来源于此):
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 | awk 'NF {printf "%s\\n", $0}'
# NUXT_OAUTH_SERVER_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
创造并完成迁移 oauth_* 应用程序中的表格(参见仓库) AGENTS.md) (中文(简体) ).
管理应用程序和范围仅需要会话 oauth:manage 权限(发给 admin 角色由
默认). 范围是OIDC范围,每个标志可能持有的许可,以及命名范围: oauthServer.scopes, (中文(简体) ),
模块addScope 联 合 国 @frigear-nu/auth)和范围管理员。 控制每个角色可能给予客户的:
oauthServer: {
scopes: [{ name: 'tickets', label: 'Your tickets', permissions: ['tickets:read', 'tickets:write'] }],
settings: { roleScopes: { admin: ['*'], user: ['openid', 'profile', 'email', 'tickets'] } },
}
访问符载 a permissions 索赔,已冻结。 未知范围 /oauth/authorize 答案为
invalid_scope;用户不得授予的已知范围在同意屏幕上显示为不可用.
从早先的释放中移走: addOAuthScope 已丢失( 使用 addScope 从 @frigear-nu/auth/utils,或
addPermission (单位:千美元) resource:action 范围) staffOnly 编辑 oauth:authorize, (中文(简体) ), oauth:scope:staff 财务报告和审定财务报表
oauth:user:roles 钩子( 使用) oauth:manage、权限和作用; allowedRoles (与有效角色相匹配).
附有实例的完整文件: apps/docs/content/3.modules/1.identity/6.oauth-server/index.md。 。 。 .
发展
pnpm --filter @frigear-nu/oauth-server test
pnpm --filter @frigear-nu/oauth-server lint
pnpm --filter @frigear-nu/oauth-server dev