commit 6433be1248aa660ba53d1c37156deca539c49dd0
parent 57b9115a443b486beb75821037a280babf706b74
Author: MTRNord <mtrnord1@gmail.com>
Date: Mon, 28 Apr 2025 14:31:04 +0200
Fix logic for logins
Signed-off-by: MTRNord <mtrnord1@gmail.com>
Diffstat:
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/app/api/verify-matrix-token/route.ts b/src/app/api/verify-matrix-token/route.ts
@@ -14,8 +14,12 @@ export async function POST(request: Request) {
return NextResponse.json({ error: "Missing required fields" }, { status: 400 })
}
+ if (!matrixId.includes(":")) {
+ return NextResponse.json({ error: "Invalid Matrix ID format" }, { status: 400 })
+ }
+
// Extract server name from Matrix ID
- const serverName = matrixId.includes(":") ? matrixId.split(":").pop() || "matrix.org" : "matrix.org"
+ const serverName = matrixId.split(":").pop()
// Discover homeserver URL
let homeserverUrl = `https://${serverName}`
diff --git a/src/components/matrix-login-form.tsx b/src/components/matrix-login-form.tsx
@@ -29,22 +29,18 @@ export function MatrixLoginForm({ matrixId, onSuccess, onCancel }: MatrixLoginFo
const [homeserverUrl, setHomeserverUrl] = useState<string | null>(null)
const [discoveryStatus, setDiscoveryStatus] = useState<"idle" | "loading" | "success" | "error">("idle")
- // Extract username and server from Matrix ID
- const serverName = matrixId.includes(":") ? matrixId.split(":").pop() || "matrix.org" : "matrix.org"
- // TODO: Fix me
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- const username = matrixId.startsWith("@")
- ? matrixId.includes(":")
- ? matrixId.split(":")[0].substring(1)
- : matrixId.substring(1)
- : matrixId
-
// Discover homeserver URL
useEffect(() => {
async function discoverHomeserver() {
- if (!serverName) return
+ if (!matrixId.includes(":")) {
+ setError("Invalid Matrix ID format. Please include a domain (e.g., @user:domain).")
+ return null
+ }
+ // Extract username and server from Matrix ID
+ const serverName = matrixId.split(":").pop()
+ if (!serverName)
- setDiscoveryStatus("loading")
+ setDiscoveryStatus("loading")
try {
// Try to fetch well-known data
const wellKnownUrl = `https://${serverName}/.well-known/matrix/client`
@@ -74,7 +70,7 @@ export function MatrixLoginForm({ matrixId, onSuccess, onCancel }: MatrixLoginFo
}
discoverHomeserver()
- }, [serverName])
+ }, [matrixId])
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault()