File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,21 +4,21 @@ import { Button } from "@/app/components/ui/button";
44
55interface SignInButtonProps {
66 className ?: string ;
7- // 默认 github(header 处无 props 调用不变);登录页可传 discord。
7+ // 传了 provider(登录页两个按钮)→ 直跳该 provider 授权;
8+ // 不传(header 的 "Sign In")→ 跳 /login 让用户在 GitHub / Discord 间选。
89 provider ?: "github" | "discord" ;
910 label ?: string ;
1011}
1112
1213export function SignInButton ( {
1314 className,
14- provider = "github" ,
15+ provider,
1516 label = "SignIn" ,
1617} : SignInButtonProps ) {
17- // 同源跳到 /oauth/render/{provider},经 next.config.mjs 的 rewrite 代理到后端。
18- // 好处:开发环境后端端口改来改去都不用改前端;302 由 Next.js 透传给浏览器,
19- // 最终跳到 provider 授权页。各 provider 的 OAuth app 回调 URL 决定返回的前端地址。
18+ // provider 已定:同源跳 /oauth/render/{provider},经 next.config rewrite 代理到后端。
19+ // provider 未定:跳 /login 选择页(middleware 会补 locale 前缀)。
2020 const handleSignIn = ( ) => {
21- window . location . href = `/oauth/render/${ provider } ` ;
21+ window . location . href = provider ? `/oauth/render/${ provider } ` : "/login" ;
2222 } ;
2323
2424 return (
@@ -30,7 +30,7 @@ export function SignInButton({
3030 data-umami-event = "auth_click"
3131 data-umami-event-action = "signin"
3232 data-umami-event-location = "header"
33- data-umami-event-provider = { provider }
33+ data-umami-event-provider = { provider ?? "choose" }
3434 >
3535 { label }
3636 </ Button >
You can’t perform that action at this time.
0 commit comments