refactor(server): improve magic link login flow (#10736)

This commit is contained in:
fengmk2
2025-03-12 15:27:36 +08:00
parent 867ae7933f
commit 43712839fd
9 changed files with 149 additions and 15 deletions
@@ -17,8 +17,9 @@ public class AuthPlugin: CAPPlugin, CAPBridgedPlugin {
let endpoint = try call.getStringEnsure("endpoint")
let email = try call.getStringEnsure("email")
let token = try call.getStringEnsure("token")
let clientNonce = call.getString("clientNonce")
let (data, response) = try await self.fetch(endpoint, method: "POST", action: "/api/auth/magic-link", headers: [:], body: ["email": email, "token": token])
let (data, response) = try await self.fetch(endpoint, method: "POST", action: "/api/auth/magic-link", headers: [:], body: ["email": email, "token": token, "client_nonce": clientNonce])
if response.statusCode >= 400 {
if let textBody = String(data: data, encoding: .utf8) {
+2 -1
View File
@@ -169,11 +169,12 @@ framework.scope(ServerScope).override(AuthProvider, resolver => {
const serverService = resolver.get(ServerService);
const endpoint = serverService.server.baseUrl;
return {
async signInMagicLink(email, linkToken) {
async signInMagicLink(email, linkToken, clientNonce) {
const { token } = await Auth.signInMagicLink({
endpoint,
email,
token: linkToken,
clientNonce,
});
await writeEndpointToken(endpoint, token);
},
@@ -3,6 +3,7 @@ export interface AuthPlugin {
endpoint: string;
email: string;
token: string;
clientNonce?: string;
}): Promise<{ token: string }>;
signInOauth(options: {
endpoint: string;