Appwrite中‘github’无法赋值给OAuthProvider类型参数的解决方法
解决Appwrite GitHub OAuth2登录的类型错误问题
你遇到的"github"无法赋值给OAuthProvider类型参数的错误,是因为Appwrite的TypeScript SDK要求使用官方定义的枚举值而非字符串字面量来指定OAuth提供商。以下是正确的配置和代码修正步骤:
步骤1:导入OAuthProvider枚举
从Appwrite SDK中导入OAuthProvider枚举,它包含了所有支持的OAuth提供商的合法值。
步骤2:替换字符串为枚举值
将代码中的'github'替换为OAuthProvider.GitHub,以此符合TypeScript的类型校验要求。
步骤3:确认Appwrite控制台配置
在Appwrite控制台完成GitHub OAuth提供商的配置:
- 进入认证 > 提供商,启用GitHub提供商
- 填入在GitHub开发者平台创建应用时获取的Client ID和Client Secret
- 确保回调URL与代码中传入的
http://localhost:3000/完全一致(生产环境需替换为实际域名)
修正后的完整代码
import { account, OAuthProvider } from "@/appwrite/config" import { Button } from "./ui/button" import { Github } from 'lucide-react' export default function LoginButton() { async function handleLogin() { account.createOAuth2Session( OAuthProvider.GitHub, 'http://localhost:3000/', 'http://localhost:3000/' ) } return ( <Button onClick={handleLogin} className="w-full flex items-center justify-center bg-secondary text-secondary-foreground hover:bg-secondary/90 transition-colors"> <Github className="mr-2 h-4 w-4" /> Login with GitHub </Button> ) }
内容的提问来源于stack exchange,提问作者Rupesh Shandilya
相关产品推荐
相关产品推荐

