diff --git a/assets/js/components/Config/AuthSuccessBanner.vue b/assets/js/components/Config/AuthSuccessBanner.vue
new file mode 100644
index 000000000..de55f83ff
--- /dev/null
+++ b/assets/js/components/Config/AuthSuccessBanner.vue
@@ -0,0 +1,29 @@
+
+
+
{{ $t("header.authProviders.success", { title: providerName }) }}
+
+
+
+
diff --git a/assets/js/views/Config.vue b/assets/js/views/Config.vue
index db33e87ba..30c85804e 100644
--- a/assets/js/views/Config.vue
+++ b/assets/js/views/Config.vue
@@ -3,6 +3,11 @@
+
@@ -437,6 +442,7 @@ type DeviceValuesMap = Record
>;
import BackupRestoreModal from "@/components/Config/BackupRestoreModal.vue";
import WelcomeBanner from "../components/Config/WelcomeBanner.vue";
import ExperimentalBanner from "../components/Config/ExperimentalBanner.vue";
+import AuthSuccessBanner from "../components/Config/AuthSuccessBanner.vue";
import PasswordModal from "../components/Auth/PasswordModal.vue";
export default defineComponent({
@@ -453,6 +459,7 @@ export default defineComponent({
EebusIcon,
EebusModal,
ExperimentalBanner,
+ AuthSuccessBanner,
GeneralConfig,
HemsIcon,
HemsModal,
@@ -523,6 +530,12 @@ export default defineComponent({
return { title: this.$t("config.main.title") };
},
computed: {
+ callbackCompleted() {
+ return this.$route.query["callbackCompleted"] as string | undefined;
+ },
+ authProviders() {
+ return store.state?.authProviders;
+ },
loadpointsRequired() {
return this.loadpoints.length === 0;
},
diff --git a/i18n/de.json b/i18n/de.json
index cd49a259b..649ea0cf5 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -697,6 +697,7 @@
"authProviders": {
"confirmLogout": "Sicher, dass du {title} trennen möchtest?",
"loggedOut": "Erfolgreich abgemeldet",
+ "success": "Die Autorisierung mit {title} war erfolgreich. Du kannst diesen Tab jetzt schließen.",
"title": "Autorisierungsstatus"
},
"blog": "Blog",
diff --git a/i18n/en.json b/i18n/en.json
index 442dccb9a..439174f38 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -697,6 +697,7 @@
"authProviders": {
"confirmLogout": "Are you sure you want to disconnect {title}?",
"loggedOut": "Successfully logged out",
+ "success": "Authorization with {title} was successful. You can now close this tab.",
"title": "Authorization Status"
},
"blog": "Blog",
diff --git a/server/providerauth/handler.go b/server/providerauth/handler.go
index a105f90a3..bf17d6d07 100644
--- a/server/providerauth/handler.go
+++ b/server/providerauth/handler.go
@@ -54,7 +54,7 @@ func (a *Handler) run(paramC chan<- util.Param) {
res := make(map[string]*AuthProvider)
for id, provider := range a.providers {
res[provider.DisplayName()] = &AuthProvider{
- ID: url.QueryEscape(id),
+ ID: id,
Authenticated: provider.Authenticated(),
}
}
@@ -182,5 +182,5 @@ func (a *Handler) handleCallback(w http.ResponseWriter, r *http.Request) {
return
}
- http.Redirect(w, r, "/", http.StatusFound)
+ http.Redirect(w, r, "/#/config?callbackCompleted="+url.QueryEscape(id), http.StatusFound)
}