-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Registration block – login with Google #1781
Conversation
@adekbadek Is NEWSPACK_GOOGLE_OAUTH_PROXY only available to Newspack hosted sites only? |
Yes, it's a closed service. |
91d2f12
to
c64a77d
Compare
@adekbadek Follow up question. Does that mean login with Google feature won't be available for open source/self hosting? |
That's correct. |
c64a77d
to
3edbf9b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The login flow works well when Google OAuth is configured correctly. I ran into one hiccup on my local test site, where trying to get the Google auth URL returned a Cannot verify the request is coming from a Newspack site
WP error, resulting in a 404. More details below.
$user_logged_in = false !== $user_id; | ||
|
||
if ( $user_logged_in ) { | ||
Reader_Activation::save_current_user_login_method( 'registration-block' ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does storing LOGIN_METHOD
determine? Its usage is not clear to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's for analytics – in the future we might send this as a custom dimension for GA, or just display in a local dashboard.
} | ||
} ); | ||
}; | ||
} | ||
} ); | ||
} )( window.newspackReaderActivation ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there's a race condition happening here. Sometimes when I load the page, window.newspackReaderActivation
is undefined
, which you can confirm by console.logging the value inside this file's IFEE closure. When this happens, the flow is unavailable and nothing happens when you click the "Sign in with Google" button.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should have been resolved by merging the domReady
changes from master
in (5867cfa).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More details in comment below.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed a few additional issues with the JS this time around. @miguelpeixe's excellent points might also mean the form itself and the JS might need to be refactored further to support the other plugins' needs.
@adekbadek Can we consider making login with google available for open source usage. Site kit plugin do it by making proxy site available in public domain. If that's not feasible, then making reader login compatible with Amazon Cognito will do the job, created a issue #1772 for further discussion on this option. |
I've noticed that the changes bricked the admin OAuth flow, fixed in 57fd298 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
The flow is working for both dashboard service connection and reader authentication.
@dkoo uncovered a race condition. The Reader Registration block is initiated when the DOM is ready, but it relies on the Reader Activation front-end library, which might not be available just yet due to network conditions. The block should await a "reader activation ready" event to prevent a race condition. |
We can tackle it on a separate PR, this issue was not originated here. We must also address #1792
We most likely don't need this, the reader activation library functions are created synchronously. It's the script tag that has the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The block should await a "reader activation ready" event to prevent a race condition.
We most likely don't need this, the reader activation library functions are created synchronously. It's the script tag that has the
async
attribute.
Great point, but wouldn't the event solve the issue even if one or both script
tags have an async
attribute?
@adekbadek One more thing on my end aside from the race condition. I'm okay with tackling the race condition in a separate PR in order to close out this PR.
Feels overkill if it's just the order of execution of a dependency. The script is not fetched through XHR to require such sophistication. |
* feat: set client id cookie; reader activation tweaks (#1780) * feat(reader-activation): registration auth cookie control (#1787) * fix(reader-activation): username generation handling (#1789) * feat(stripe): webhook auto-creation and validation * feat(reader-activation): account link and auth form (#1754) Co-authored-by: Adam Boro <[email protected]> * feat: handle new frequency options in Campaigns dashbaord (#1779) * feat: handle new frequency options in Campaigns dashbaord * feat: only enable new frequency options if reader activation flag is on * feat(registration-block): newsletter subscription (#1778) * fix(popups): use new Campaigns method for creating donation events on new orders (#1794) * fix(popups): use new Campaigns method for creating donation events on new orders * refactor: use action hook instead of calling Campaigns methods directly * chore: remove unneeded condition * refactor: use a hook for WooCommerce donations, too * fix: add client_id to contact info passed from Stripe * feat(my-account): stripe billing portal link (#1761) Note: some styling relies on Automattic/newspack-theme#1875 Closes #1742 Closes #1739 Closes #1740 Closes #1741 Closes #1782 * feat(registration-block): login with Google (#1781) Closes #1774 Co-authored-by: Miguel Peixe <[email protected]> * chore(deps): bump @babel/preset-env from 7.18.6 to 7.18.9 Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.6 to 7.18.9. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * chore(deps): bump date-fns from 2.28.0 to 2.29.1 Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.28.0 to 2.29.1. - [Release notes](https://github.com/date-fns/date-fns/releases) - [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md) - [Commits](date-fns/date-fns@v2.28.0...v2.29.1) --- updated-dependencies: - dependency-name: date-fns dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * chore(deps): bump @babel/plugin-transform-runtime from 7.18.6 to 7.18.9 Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.18.6 to 7.18.9. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-plugin-transform-runtime) --- updated-dependencies: - dependency-name: "@babel/plugin-transform-runtime" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * chore(deps): bump stripe/stripe-php from 8.10.0 to 8.11.0 Bumps [stripe/stripe-php](https://github.com/stripe/stripe-php) from 8.10.0 to 8.11.0. - [Release notes](https://github.com/stripe/stripe-php/releases) - [Changelog](https://github.com/stripe/stripe-php/blob/master/CHANGELOG.md) - [Commits](stripe/stripe-php@v8.10.0...v8.11.0) --- updated-dependencies: - dependency-name: stripe/stripe-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * feat: register anonymous single donors (#1795) Co-authored-by: Adam Borowski <[email protected]> * feat(registration-block): editable success state (#1785) Closes #1768 Co-authored-by: Thomas Guillot <[email protected]> * feat(registration-block): add success icon (#1804) * refactor: remove unneeded prop * feat: send user metadata to AC (#1793) * feat: remove reader registration on adding contact via hook This was causing an infinite loop: Newsletters is triggering reader registration when a contact is added (`Newspack_Newsletters_Subscription::newspack_registered_reader`). Then, on adding a contact, registration was triggered again here. * fix(registration-block): margin for success message (#1808) * Reader Activation: auth form with third-party and lists subscriptions (#1800) * feat: tweak registration block styling * feat(reader-auth): make password login the first option, instead of login link Closes #1809 * fix(reader-activation): reinitialize auth links after DOM load (#1812) * fix: ensure scroll on smaller height (#1813) * feat(reader-activation): settings wizard (#1773) Co-authored-by: Adam Boro <[email protected]> * feat: handle contact update w/out lists selection (#1816) Co-authored-by: Miguel Peixe <[email protected]> * chore: logger update (#1807) Co-authored-by: Miguel Peixe <[email protected]> * feat(reader-activation): disable 3rd party login buttons initially (#1806) * feat(reader-activation): prevent updating user email in my-account * feat(reader-activation): activecampaign master list (#1818) Co-authored-by: Adam Boro <[email protected]> * chore(deps): bump stripe/stripe-php from 8.11.0 to 8.12.0 Bumps [stripe/stripe-php](https://github.com/stripe/stripe-php) from 8.11.0 to 8.12.0. - [Release notes](https://github.com/stripe/stripe-php/releases) - [Changelog](https://github.com/stripe/stripe-php/blob/master/CHANGELOG.md) - [Commits](stripe/stripe-php@v8.11.0...v8.12.0) --- updated-dependencies: - dependency-name: stripe/stripe-php dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * fix(campaigns-wizard): segmentation wording * feat(rss): adds offset feature (#1790) Adds offset feature to RSS, allowing better ad integration with RSS feed based emails * fix(reader-activation): handle no lists config available * fix: fix fatal error when debug mode active (#1826) * feat: reorganise donations wizard and use buttongroup for donation type (#1824) * fix: google auth button type (#1829) * fix(magic-links): fix email encoding on sent link (#1833) * fix(registration-block): don't escape html for sign in labels (#1834) * fix(reader-activation): add metadata to reader registered on donation * fix(registration-block): render on preview (#1844) Co-authored-by: Derrick Koo <[email protected]> * fix(reader-activation): remove async prop from library (#1846) * feat(analytics): send GA events on the server side (#1828) * refactor: abstract server-side GA custom event sending * feat(reader-activation): send custom event to GA on reader registration * feat: report user login method to GA; refactor how it's stored * refactor: handle extended data from the newspack_newsletters_contact_data hook * feat: send NTG custom events on registration, newsletter signup * fix(my account): handle legacy data (#1823) * fix(reader-activation): handle modal conflict when auth is triggered from a prompt Closes #1835 * feat(reader-activation): optimistic account link (#1847) * fix(google-auth): ensure popup on user click event (#1831) Co-authored-by: Adam Boro <[email protected]> * feat(active-campaigns): override is-new-contact for legacy contacts * feat(active-campaign): metadata improvements (#1851) * feat: if registering an email that already has an account, show different message (#1849) * feat: if registering an email that already has an account, show different message * refactor: use existing var * feat: replace WooCommerce’s login form with our own (#1854) * feat: replace WooCommerce’s login form with our own * fix: use WC method to get account URL Co-authored-by: Miguel Peixe <[email protected]> * refactor: call render method from template file * feat: hide page title on WC account pages * refactor: restore modal on My Account pages; handle multiple form instancse * refactor: use $class method to build inline class Co-authored-by: Miguel Peixe <[email protected]> * style: remove unneeded padding from inline form * fix: move handlers and functions outside of loop * chore: reword auth message for consistency * fix: avoid JS error if redirect input is null * fix: avoid JS error if email input is null Co-authored-by: Miguel Peixe <[email protected]> * fix(newsletters): use international date format (#1855) * fix: tweak arguments for magic link client hash (#1862) * feat(donations): remove defaultFrequency from the configuration (#1814) It's not configurable. See Automattic/newspack-blocks#1218 * fix(ga): cookie parsing (#1857) * fix(active-campaign): legacy contacts detection (#1858) Co-authored-by: Adam Boro <[email protected]> Co-authored-by: Miguel Peixe <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Thomas Guillot <[email protected]> Co-authored-by: matticbot <[email protected]> Co-authored-by: dnalla1928 <[email protected]> Co-authored-by: Claudiu Lodromanean <[email protected]>
# [1.88.0-alpha.1](v1.87.0...v1.88.0-alpha.1) (2022-08-05) ### Bug Fixes * **active-campaign:** legacy contacts detection ([#1858](#1858)) ([67640a5](67640a5)) * **campaigns-wizard:** segmentation wording ([ddf61ad](ddf61ad)) * ensure scroll on smaller height ([#1813](#1813)) ([e234e8b](e234e8b)) * fix fatal error when debug mode active ([#1826](#1826)) ([d9388ee](d9388ee)) * **ga:** cookie parsing ([#1857](#1857)) ([a936abd](a936abd)) * google auth button type ([#1829](#1829)) ([3704d9f](3704d9f)) * **google-auth:** ensure popup on user click event ([#1831](#1831)) ([0af9abf](0af9abf)) * **magic-links:** fix email encoding on sent link ([#1833](#1833)) ([8d4756c](8d4756c)) * **my account:** handle legacy data ([#1823](#1823)) ([6816799](6816799)) * **newsletters:** use international date format ([#1855](#1855)) ([4cda57d](4cda57d)) * **popups:** use new Campaigns method for creating donation events on new orders ([#1794](#1794)) ([49dc14c](49dc14c)) * **reader-activation:** add metadata to reader registered on donation ([722724c](722724c)) * **reader-activation:** handle modal conflict when auth is triggered from a prompt ([c2a0141](c2a0141)), closes [#1835](#1835) * **reader-activation:** handle no lists config available ([23b0249](23b0249)) * **reader-activation:** reinitialize auth links after DOM load ([#1812](#1812)) ([0a4b499](0a4b499)) * **reader-activation:** remove async prop from library ([#1846](#1846)) ([4131ca6](4131ca6)) * **reader-activation:** username generation handling ([#1789](#1789)) ([17edf2a](17edf2a)) * **registration-block:** don't escape html for sign in labels ([#1834](#1834)) ([871300d](871300d)) * **registration-block:** margin for success message ([#1808](#1808)) ([1bfe546](1bfe546)) * **registration-block:** render on preview ([#1844](#1844)) ([87b9be9](87b9be9)) * tweak arguments for magic link client hash ([#1862](#1862)) ([8dcd45e](8dcd45e)) ### Features * **active-campaign:** metadata improvements ([#1851](#1851)) ([48883af](48883af)) * **active-campaigns:** override is-new-contact for legacy contacts ([34dd9a2](34dd9a2)) * **analytics:** send GA events on the server side ([#1828](#1828)) ([3e384e1](3e384e1)) * **donations:** remove defaultFrequency from the configuration ([#1814](#1814)) ([b6aa894](b6aa894)) * handle contact update w/out lists selection ([#1816](#1816)) ([67574d1](67574d1)) * handle new frequency options in Campaigns dashbaord ([#1779](#1779)) ([c770a7d](c770a7d)) * if registering an email that already has an account, show different message ([#1849](#1849)) ([bf48bc4](bf48bc4)) * **my-account:** stripe billing portal link ([#1761](#1761)) ([3e69af1](3e69af1)), closes [#1742](#1742) [#1739](#1739) [#1740](#1740) [#1741](#1741) [#1782](#1782) * **reader-activation:** account link and auth form ([#1754](#1754)) ([b163664](b163664)) * **reader-activation:** activecampaign master list ([#1818](#1818)) ([ecbbc47](ecbbc47)) * **reader-activation:** disable 3rd party login buttons initially ([#1806](#1806)) ([c806bfe](c806bfe)) * **reader-activation:** optimistic account link ([#1847](#1847)) ([85c550a](85c550a)) * **reader-activation:** prevent updating user email in my-account ([7d49db4](7d49db4)) * **reader-activation:** registration auth cookie control ([#1787](#1787)) ([aeb0b5b](aeb0b5b)) * **reader-activation:** settings wizard ([#1773](#1773)) ([aaff0de](aaff0de)) * **reader-auth:** make password login the first option, instead of login link ([1fe5ffa](1fe5ffa)), closes [#1809](#1809) * register anonymous single donors ([#1795](#1795)) ([9e4f2f6](9e4f2f6)) * **registration-block:** add success icon ([#1804](#1804)) ([86c38f8](86c38f8)) * **registration-block:** editable success state ([#1785](#1785)) ([7dcea82](7dcea82)), closes [#1768](#1768) * **registration-block:** login with Google ([#1781](#1781)) ([ed79c5c](ed79c5c)), closes [#1774](#1774) * **registration-block:** newsletter subscription ([#1778](#1778)) ([717b5b8](717b5b8)) * reorganise donations wizard and use buttongroup for donation type ([#1824](#1824)) ([f7b58ae](f7b58ae)) * replace WooCommerce’s login form with our own ([#1854](#1854)) ([f5b24c4](f5b24c4)) * **rss:** adds offset feature ([#1790](#1790)) ([321eff5](321eff5)) * send user metadata to AC ([#1793](#1793)) ([03a15ba](03a15ba)) * set client id cookie; reader activation tweaks ([#1780](#1780)) ([96a07ae](96a07ae)) * **stripe:** webhook auto-creation and validation ([365aed9](365aed9)) * tweak registration block styling ([d83448e](d83448e)) ### Reverts * Revert "chore(release): 1.87.0 [skip ci]" ([ca8d55c](ca8d55c))
🎉 This PR is included in version 1.88.0-alpha.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Closes #1774 Co-authored-by: Miguel Peixe <[email protected]>
# [1.89.0-alpha.1](v1.88.0...v1.89.0-alpha.1) (2022-08-10) ### Bug Fixes * **active-campaign:** legacy contacts detection ([#1858](#1858)) ([67640a5](67640a5)) * **campaigns-wizard:** segmentation wording ([ddf61ad](ddf61ad)) * ensure scroll on smaller height ([#1813](#1813)) ([e234e8b](e234e8b)) * fix fatal error when debug mode active ([#1826](#1826)) ([d9388ee](d9388ee)) * **ga:** cookie parsing ([#1857](#1857)) ([a936abd](a936abd)) * google auth button type ([#1829](#1829)) ([3704d9f](3704d9f)) * **google-auth:** ensure popup on user click event ([#1831](#1831)) ([0af9abf](0af9abf)) * **magic-links:** fix email encoding on sent link ([#1833](#1833)) ([8d4756c](8d4756c)) * **my account:** handle legacy data ([#1823](#1823)) ([6816799](6816799)) * **newsletters:** use international date format ([#1855](#1855)) ([4cda57d](4cda57d)) * **popups:** use new Campaigns method for creating donation events on new orders ([#1794](#1794)) ([49dc14c](49dc14c)) * **reader-activation:** add metadata to reader registered on donation ([722724c](722724c)) * **reader-activation:** handle modal conflict when auth is triggered from a prompt ([c2a0141](c2a0141)), closes [#1835](#1835) * **reader-activation:** handle no lists config available ([23b0249](23b0249)) * **reader-activation:** reinitialize auth links after DOM load ([#1812](#1812)) ([0a4b499](0a4b499)) * **reader-activation:** remove async prop from library ([#1846](#1846)) ([4131ca6](4131ca6)) * **reader-activation:** username generation handling ([#1789](#1789)) ([17edf2a](17edf2a)) * **registration-block:** don't escape html for sign in labels ([#1834](#1834)) ([871300d](871300d)) * **registration-block:** margin for success message ([#1808](#1808)) ([1bfe546](1bfe546)) * **registration-block:** render on preview ([#1844](#1844)) ([87b9be9](87b9be9)) * tweak arguments for magic link client hash ([#1862](#1862)) ([8dcd45e](8dcd45e)) ### Features * **active-campaign:** metadata improvements ([#1851](#1851)) ([48883af](48883af)) * **active-campaigns:** override is-new-contact for legacy contacts ([34dd9a2](34dd9a2)) * **analytics:** send GA events on the server side ([#1828](#1828)) ([3e384e1](3e384e1)) * **donations:** remove defaultFrequency from the configuration ([#1814](#1814)) ([b6aa894](b6aa894)) * handle contact update w/out lists selection ([#1816](#1816)) ([67574d1](67574d1)) * handle new frequency options in Campaigns dashbaord ([#1779](#1779)) ([c770a7d](c770a7d)) * if registering an email that already has an account, show different message ([#1849](#1849)) ([bf48bc4](bf48bc4)) * **my-account:** stripe billing portal link ([#1761](#1761)) ([3e69af1](3e69af1)), closes [#1742](#1742) [#1739](#1739) [#1740](#1740) [#1741](#1741) [#1782](#1782) * **reader-activation:** account link and auth form ([#1754](#1754)) ([b163664](b163664)) * **reader-activation:** activecampaign master list ([#1818](#1818)) ([ecbbc47](ecbbc47)) * **reader-activation:** disable 3rd party login buttons initially ([#1806](#1806)) ([c806bfe](c806bfe)) * **reader-activation:** optimistic account link ([#1847](#1847)) ([85c550a](85c550a)) * **reader-activation:** prevent updating user email in my-account ([7d49db4](7d49db4)) * **reader-activation:** registration auth cookie control ([#1787](#1787)) ([aeb0b5b](aeb0b5b)) * **reader-activation:** settings wizard ([#1773](#1773)) ([aaff0de](aaff0de)) * **reader-auth:** make password login the first option, instead of login link ([1fe5ffa](1fe5ffa)), closes [#1809](#1809) * register anonymous single donors ([#1795](#1795)) ([9e4f2f6](9e4f2f6)) * **registration-block:** add success icon ([#1804](#1804)) ([86c38f8](86c38f8)) * **registration-block:** editable success state ([#1785](#1785)) ([7dcea82](7dcea82)), closes [#1768](#1768) * **registration-block:** login with Google ([#1781](#1781)) ([ed79c5c](ed79c5c)), closes [#1774](#1774) * **registration-block:** newsletter subscription ([#1778](#1778)) ([717b5b8](717b5b8)) * reorganise donations wizard and use buttongroup for donation type ([#1824](#1824)) ([f7b58ae](f7b58ae)) * replace WooCommerce’s login form with our own ([#1854](#1854)) ([f5b24c4](f5b24c4)) * **rss:** adds offset feature ([#1790](#1790)) ([321eff5](321eff5)) * send user metadata to AC ([#1793](#1793)) ([03a15ba](03a15ba)) * set client id cookie; reader activation tweaks ([#1780](#1780)) ([96a07ae](96a07ae)) * **stripe:** webhook auto-creation and validation ([365aed9](365aed9)) * tweak registration block styling ([d83448e](d83448e)) ### Reverts * Revert "chore(release): 1.87.0 [skip ci]" ([ca8d55c](ca8d55c))
🎉 This PR is included in version 1.89.0-alpha.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
# [1.89.0](v1.88.0...v1.89.0) (2022-08-16) ### Bug Fixes * **active-campaign:** legacy contacts detection ([#1858](#1858)) ([67640a5](67640a5)) * **campaigns-wizard:** segmentation wording ([ddf61ad](ddf61ad)) * ensure scroll on smaller height ([#1813](#1813)) ([e234e8b](e234e8b)) * fix fatal error when debug mode active ([#1826](#1826)) ([d9388ee](d9388ee)) * **ga:** cookie parsing ([#1857](#1857)) ([a936abd](a936abd)) * google auth button type ([#1829](#1829)) ([3704d9f](3704d9f)) * **google-auth:** catch and display errors ([#1871](#1871)) ([67cbcfd](67cbcfd)) * **google-auth:** ensure popup on user click event ([#1831](#1831)) ([0af9abf](0af9abf)) * **magic-links:** fix email encoding on sent link ([#1833](#1833)) ([8d4756c](8d4756c)) * **my account:** handle legacy data ([#1823](#1823)) ([6816799](6816799)) * **newsletters:** use international date format ([#1855](#1855)) ([4cda57d](4cda57d)) * **oauth:** csrf token lifespan ([#1869](#1869)) ([52e0f8b](52e0f8b)) * parse CID from _ga cookie if it only contains CID string ([#1874](#1874)) ([dc1fb52](dc1fb52)) * **popups:** use new Campaigns method for creating donation events on new orders ([#1794](#1794)) ([49dc14c](49dc14c)) * **reader-activation:** add metadata to reader registered on donation ([722724c](722724c)) * **reader-activation:** handle modal conflict when auth is triggered from a prompt ([c2a0141](c2a0141)), closes [#1835](#1835) * **reader-activation:** handle no lists config available ([23b0249](23b0249)) * **reader-activation:** reinitialize auth links after DOM load ([#1812](#1812)) ([0a4b499](0a4b499)) * **reader-activation:** remove async prop from library ([#1846](#1846)) ([4131ca6](4131ca6)) * **reader-activation:** username generation handling ([#1789](#1789)) ([17edf2a](17edf2a)) * redirecting to My Account after logging in while pre-authed ([#1863](#1863)) ([ddf111e](ddf111e)) * **registration-block:** don't escape html for sign in labels ([#1834](#1834)) ([871300d](871300d)) * **registration-block:** margin for success message ([#1808](#1808)) ([1bfe546](1bfe546)) * **registration-block:** render on preview ([#1844](#1844)) ([87b9be9](87b9be9)) * tweak arguments for magic link client hash ([#1862](#1862)) ([8dcd45e](8dcd45e)) * verify reader on google authentication ([#1873](#1873)) ([c9c4eef](c9c4eef)) ### Features * **active-campaign:** metadata improvements ([#1851](#1851)) ([48883af](48883af)) * **active-campaigns:** override is-new-contact for legacy contacts ([34dd9a2](34dd9a2)) * **analytics:** send GA events on the server side ([#1828](#1828)) ([3e384e1](3e384e1)) * authenticated reader cookie ([#1882](#1882)) ([352316b](352316b)) * better welcome email copy for initial verification ([#1880](#1880)) ([604ebf7](604ebf7)) * cookie reader's preferred auth strategy ([#1875](#1875)) ([fc47f41](fc47f41)) * disable woocomerce welcome emails in favor of verification email ([#1876](#1876)) ([1e470e3](1e470e3)) * **donations:** remove defaultFrequency from the configuration ([#1814](#1814)) ([b6aa894](b6aa894)) * handle contact update w/out lists selection ([#1816](#1816)) ([67574d1](67574d1)) * handle new frequency options in Campaigns dashbaord ([#1779](#1779)) ([c770a7d](c770a7d)) * if registering an email that already has an account, show different message ([#1849](#1849)) ([bf48bc4](bf48bc4)) * lock access to My Account UI until account is verified ([#1877](#1877)) ([a850f48](a850f48)) * **my-account:** stripe billing portal link ([#1761](#1761)) ([3e69af1](3e69af1)), closes [#1742](#1742) [#1739](#1739) [#1740](#1740) [#1741](#1741) [#1782](#1782) * **reader-activation:** account link and auth form ([#1754](#1754)) ([b163664](b163664)) * **reader-activation:** activecampaign master list ([#1818](#1818)) ([ecbbc47](ecbbc47)) * **reader-activation:** disable 3rd party login buttons initially ([#1806](#1806)) ([c806bfe](c806bfe)) * **reader-activation:** optimistic account link ([#1847](#1847)) ([85c550a](85c550a)) * **reader-activation:** prevent updating user email in my-account ([7d49db4](7d49db4)) * **reader-activation:** registration auth cookie control ([#1787](#1787)) ([aeb0b5b](aeb0b5b)) * **reader-activation:** settings wizard ([#1773](#1773)) ([aaff0de](aaff0de)) * **reader-auth:** make password login the first option, instead of login link ([1fe5ffa](1fe5ffa)), closes [#1809](#1809) * register anonymous single donors ([#1795](#1795)) ([9e4f2f6](9e4f2f6)) * **registration-block:** add success icon ([#1804](#1804)) ([86c38f8](86c38f8)) * **registration-block:** editable success state ([#1785](#1785)) ([7dcea82](7dcea82)), closes [#1768](#1768) * **registration-block:** login with Google ([#1781](#1781)) ([ed79c5c](ed79c5c)), closes [#1774](#1774) * **registration-block:** newsletter subscription ([#1778](#1778)) ([717b5b8](717b5b8)) * reorganise donations wizard and use buttongroup for donation type ([#1824](#1824)) ([f7b58ae](f7b58ae)) * replace WooCommerce’s login form with our own ([#1854](#1854)) ([f5b24c4](f5b24c4)) * **rss:** adds offset feature ([#1790](#1790)) ([321eff5](321eff5)) * send user metadata to AC ([#1793](#1793)) ([03a15ba](03a15ba)) * set client id cookie; reader activation tweaks ([#1780](#1780)) ([96a07ae](96a07ae)) * **stripe:** webhook auto-creation and validation ([365aed9](365aed9)) * tweak registration block styling ([d83448e](d83448e)) ### Reverts * Revert "chore(release): 1.87.0 [skip ci]" ([ca8d55c](ca8d55c))
🎉 This PR is included in version 1.89.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
All Submissions:
Changes proposed in this Pull Request:
Adds Google Login to the Reader Registration block. Also adds a
np_reader_login_method
user meta, to note the login method.This implementation reuses a lot of the code used for processing admin-related Google OAuth used for GAM connection. The differences are:
auth/userinfo.email
scope is requestedCloses #1774
How to test the changes in this Pull Request:
NEWSPACK_GOOGLE_OAUTH_PROXY
defined), observe that the Registration block does not feature a "Sign in with Google" buttonNEWSPACK_GOOGLE_OAUTH_PROXY
env. variablenp_reader_login_method
user meta value is'google'
Other information: