FIX: Maintain destination_url after passkey login (#24171)

This commit is contained in:
Penar Musaraj 2023-10-31 11:35:36 -04:00 committed by GitHub
parent e6299a310f
commit 18d7162481
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View File

@ -149,7 +149,13 @@ export default class Login extends Component {
});
if (authResult && !authResult.error) {
window.location.reload();
const destinationUrl = cookie("destination_url");
if (destinationUrl) {
removeCookie("destination_url");
window.location.assign(destinationUrl);
} else {
window.location.reload();
}
} else {
this.dialog.alert(authResult.error);
}

View File

@ -60,6 +60,13 @@ describe "User preferences for Security", type: :system do
)
authenticator = page.driver.browser.add_virtual_authenticator(options)
page.driver.browser.manage.add_cookie(
domain: Discourse.current_hostname,
name: "destination_url",
value: "/new",
path: "/",
)
user_preferences_security_page.visit(user)
find(".pref-passkeys__add .btn").click
@ -94,6 +101,9 @@ describe "User preferences for Security", type: :system do
expect(page).to have_css(".header-dropdown-toggle.current-user")
# ensures that we are redirected to the destination_url cookie
expect(page.driver.current_url).to include("/new")
# clear authenticator (otherwise it will interfere with other tests)
authenticator.remove!
end