diff --git a/changelog/18513.txt b/changelog/18513.txt
new file mode 100644
index 0000000000..6b3ca2fe48
--- /dev/null
+++ b/changelog/18513.txt
@@ -0,0 +1,3 @@
+```release-note:improvement
+ui: latest version of chrome does not automatically redirect back to the app after authentication unless triggered by the user, hence added a link to redirect back to the app.
+```
\ No newline at end of file
diff --git a/ui/app/routes/vault/cluster/oidc-provider.js b/ui/app/routes/vault/cluster/oidc-provider.js
index d969c1e68e..a33a9b6ac6 100644
--- a/ui/app/routes/vault/cluster/oidc-provider.js
+++ b/ui/app/routes/vault/cluster/oidc-provider.js
@@ -94,17 +94,17 @@ export default class VaultClusterOidcProviderRoute extends Route {
_handleSuccess(response, baseUrl, state) {
const { code } = response;
const redirectUrl = this._buildUrl(baseUrl, { code, state });
- if (Ember.testing) {
- return { redirectUrl };
+ if (!Ember.testing) {
+ this.win.location.replace(redirectUrl);
}
- this.win.location.replace(redirectUrl);
+ return { redirectUrl };
}
_handleError(errorResp, baseUrl) {
const redirectUrl = this._buildUrl(baseUrl, { ...errorResp });
- if (Ember.testing) {
- return { redirectUrl };
+ if (!Ember.testing) {
+ this.win.location.replace(redirectUrl);
}
- this.win.location.replace(redirectUrl);
+ return { redirectUrl };
}
/**
diff --git a/ui/app/templates/vault/cluster/oidc-provider.hbs b/ui/app/templates/vault/cluster/oidc-provider.hbs
index aa93ad2d75..1178ca295d 100644
--- a/ui/app/templates/vault/cluster/oidc-provider.hbs
+++ b/ui/app/templates/vault/cluster/oidc-provider.hbs
@@ -19,7 +19,9 @@
@onSuccess={{this._handleSuccess}}
/>
{{else if this.model.redirectUrl}}
-
{{this.model.redirectUrl}}
+
+ If you are not automatically redirected,
+ click here to go back to app.
{{else}}
{{/if}}
diff --git a/ui/tests/acceptance/auth-list-test.js b/ui/tests/acceptance/auth-list-test.js
index 557905bb26..316bba0619 100644
--- a/ui/tests/acceptance/auth-list-test.js
+++ b/ui/tests/acceptance/auth-list-test.js
@@ -4,7 +4,16 @@
*/
/* eslint qunit/no-conditional-assertions: "warn" */
-import { click, fillIn, settled, visit, triggerKeyEvent, find, waitUntil } from '@ember/test-helpers';
+import {
+ click,
+ fillIn,
+ settled,
+ visit,
+ triggerKeyEvent,
+ find,
+ waitUntil,
+ currentURL,
+} from '@ember/test-helpers';
import { module, test } from 'qunit';
import { setupApplicationTest } from 'ember-qunit';
import { v4 as uuidv4 } from 'uuid';
diff --git a/ui/tests/acceptance/oidc-provider-test.js b/ui/tests/acceptance/oidc-provider-test.js
index 5b6688d0e6..724282bab2 100644
--- a/ui/tests/acceptance/oidc-provider-test.js
+++ b/ui/tests/acceptance/oidc-provider-test.js
@@ -164,10 +164,11 @@ module('Acceptance | oidc provider', function (hooks) {
await authFormComponent.login();
await settled();
assert.strictEqual(currentURL(), url, 'URL is as expected after login');
- assert.dom('[data-test-oidc-redirect]').exists('redirect text exists');
assert
.dom('[data-test-oidc-redirect]')
- .hasTextContaining(`${callback}?code=`, 'Successful redirect to callback');
+ .hasTextContaining(`click here to go back to app`, 'Shows link back to app');
+ const link = document.querySelector('[data-test-oidc-redirect]').getAttribute('href');
+ assert.ok(link.includes('/callback?code='), 'Redirects to correct url');
//* clean up test state
await clearRecord(this.store, 'oidc/client', 'my-webapp');
@@ -192,7 +193,9 @@ module('Acceptance | oidc provider', function (hooks) {
await settled();
assert
.dom('[data-test-oidc-redirect]')
- .hasTextContaining(`${callback}?code=`, 'Successful redirect to callback');
+ .hasTextContaining(`click here to go back to app`, 'Shows link back to app');
+ const link = document.querySelector('[data-test-oidc-redirect]').getAttribute('href');
+ assert.ok(link.includes('/callback?code='), 'Redirects to correct url');
//* clean up test state
await clearRecord(this.store, 'oidc/client', 'my-webapp');