您可以使用 TinaCloud 进行身份验证和授权,并自行托管内容 API。如果您还没有账户,可以在 app.tina.io 创建一个,然后创建一个新项目。
创建项目后,您需要添加以下环境变量:
NEXT_PUBLIC_TINA_CLIENT_ID=***
要启用 TinaCloud 进行认证,请确保在您的 Tina 配置中将 clientId
属性设置为 NEXT_PUBLIC_TINA_CLIENT_ID
环境变量。
tina/config.{ts,js}
//...export default defineConfig({// 确保此项指向您的 graphql 端点contentApiUrlOverride: '/api/tina/gql',clientId: process.env.NEXT_PUBLIC_TINA_CLIENT_ID!,//...admin: {auth: {useLocalAuth: process.env.TINA_PUBLIC_IS_LOCAL === 'true',},},})
首先安装 @tinacms/auth
包:
yarn add @tinacms/auth
接下来,您可以更新您的 Tina 后端以使用 TinaCloudBackendAuthProvider
类。
/pages/api/tina/[...routes].{ts,js}
import { TinaNodeBackend, LocalBackendAuthProvider } from '@tinacms/datalayer'import { TinaCloudBackendAuthProvider } from '@tinacms/auth'import databaseClient from '../../../tina/__generated__/databaseClient'const isLocal = process.env.TINA_PUBLIC_IS_LOCAL === 'true'const handler = TinaNodeBackend({authProvider: isLocal? LocalBackendAuthProvider(): TinaCloudBackendAuthProvider(),databaseClient,})export default (req, res) => {// 如果需要,可以在此处修改请求return handler(req, res)}