From 2c86fac20824e6cca1f98bfd71a1d22ac2b13e93 Mon Sep 17 00:00:00 2001 From: dignow Date: Mon, 7 Aug 2023 19:08:29 +0800 Subject: [PATCH] refact, common oidc Signed-off-by: dignow --- flutter/lib/models/user_model.dart | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/flutter/lib/models/user_model.dart b/flutter/lib/models/user_model.dart index 18f409608..ebed47587 100644 --- a/flutter/lib/models/user_model.dart +++ b/flutter/lib/models/user_model.dart @@ -167,8 +167,20 @@ class UserModel { try { final url = await bind.mainGetApiServer(); if (url.trim().isEmpty) return []; - final resp = await http.get(Uri.parse('$url/api/oidc/login-options')); - return jsonDecode(resp.body); + final resp = await http.get(Uri.parse('$url/api/login-options')); + final List ops = []; + for (final item in jsonDecode(resp.body)) { + ops.add(item as String); + } + for (final item in ops) { + if (item.startsWith('common-oidc/')) { + return jsonDecode(item.substring('common-oidc/'.length)); + } + } + return ops + .where((item) => item.startsWith('oidc/')) + .map((item) => {'name': item.substring('oidc/'.length)}) + .toList(); } catch (e) { debugPrint( "queryOidcLoginOptions: jsonDecode resp body failed: ${e.toString()}");