Commit Graph

1203 Commits

Author SHA1 Message Date
Fabien O'Carroll
bd5d2a664b Published new versions
- @tryghost/members-ssr@0.2.1
2019-07-17 18:07:35 +08:00
Fabien O'Carroll
21123d4061 Fixed getMemberDataFromSession usage of membersApi
no-issue

Since we allow the membersApi to be a thunk - we must wrap all
references to it in a call to get
2019-07-17 18:05:38 +08:00
Fabien O'Carroll
5a4efd2eec Published new versions
- @tryghost/members-ssr@0.2.0
2019-07-17 15:07:16 +08:00
Fabien O'Carroll
942187f48e Added support for passing thunk for membersApi
no-issue

This is to allow support for consumers to dynamically update their
membersApi instance, for example when configuration changes, and not
have to replace the instance of members-ssr
2019-07-17 15:06:20 +08:00
Fabien O'Carroll
192f27b5bd Published new versions
- @tryghost/members-auth-pages@1.1.0
 - @tryghost/members-browser-auth@0.2.0
 - @tryghost/members-theme-bindings@0.2.3
2019-07-09 18:45:57 +08:00
Fabien O'Carroll
474c495331 Stopped browser-auth editing src of auth-pages frame
refs #36

This removes the behaviour of forcing the `src` property to change when
opening the auth pages and insteads posts a message "asking" the auth
pages to update the location hash.
2019-07-09 18:44:53 +08:00
Fabien O'Carroll
550ea70c9c Allowed auth-pages to update location from message
refs #36

This will allow the members-browser-auth library to post messages to the
auth-pages iframe, asking it to update the location from inside the
frame.
2019-07-09 18:44:53 +08:00
Fabien O'Carroll
f89677b1ce Published new versions
- @tryghost/members-auth-pages@1.0.0
2019-07-09 15:49:47 +08:00
Fabien O'Carroll
54560050c6 Updated auth-pages to use new members static url (#35)
refs https://github.com/TryGhost/Ghost/issues/10886

Since updating the static pages, the auth pages would be broken, this
updates them to correctly parse and load the static urls.
2019-07-09 15:49:05 +08:00
Fabien O'Carroll
20c60e4de3 Published new versions
- @tryghost/members-api@0.2.0
 - @tryghost/members-browser-auth@0.1.3
 - @tryghost/members-gateway-api@0.1.4
 - @tryghost/members-theme-bindings@0.2.2
2019-07-09 15:39:16 +08:00
Fabien O'Carroll
34f7b2c7d6 Updated members-api to export a router instance
no-issue

This was the original design, to make it easy to incorporate into
another application, but the URL structure in Ghost did not allow for
it, we've since learnt that the URL structure _should_ be how it is
here, so we can export a router with both the auth endpoints and the
static files for the gateway
2019-07-09 15:23:11 +08:00
Renovate Bot
584d725e12 Update dependency eslint-plugin-ghost to v0.4.0 2019-07-08 02:24:52 +00:00
Renovate Bot
44e37f3ed5 Update dependency browserify to v16.3.0 2019-07-08 01:25:08 +00:00
Renovate Bot
cc096d5c84 Update dependency eslint-plugin-ghost to v0.3.0 2019-07-01 01:28:27 +00:00
Fabien O'Carroll
3475975519 Published new versions
- @tryghost/members-theme-bindings@0.2.1
2019-06-25 14:58:43 +07:00
Fabien O'Carroll
99a8ae197e Fixed createSession call on signedin event
no-issue

This was missing the ssrUrl property.
2019-06-25 14:52:42 +07:00
Fabien O'Carroll
f220ee10c7 Published new versions
- @tryghost/members-api@0.1.2
 - @tryghost/members-auth-pages@0.2.2
 - @tryghost/members-browser-auth@0.1.2
 - @tryghost/members-gateway-api@0.1.3
 - @tryghost/members-gateway-protocol@0.1.2
 - @tryghost/members-theme-bindings@0.2.0
2019-06-25 14:22:42 +07:00
Fabien O'Carroll
979af9f234 Removed hardcoded url values
no-issue

This gives greater flexibility in the application which handles the urls
for this, allowing the urls to be changed and configured in only one
codebase.
2019-06-25 14:18:07 +07:00
Renovate Bot
ca998d0529 Update dependency jsdom to v15.1.1 2019-06-03 01:27:16 +00:00
Renovate Bot
32a13bf561 Update dependency jsdom to v15.1.0 2019-05-13 02:30:08 +00:00
Renovate Bot
d582e03743 Update dependency grunt to v1.0.4 2019-05-13 01:28:42 +00:00
Fabien O'Carroll
8728a677c5 Published new versions
- @tryghost/members-auth-pages@0.2.1
2019-05-08 11:47:13 +02:00
Fabien O'Carroll
1ae43a9ce0 Added blank.js to root of auth-pages
no-issue

This is so we have a valid js file for node require resolution
2019-05-08 11:45:33 +02:00
Fabien O'Carroll
497934bb6a Renamed app.js back to index.js
no-issue

Preact was having issues when the entrypoint wasn't named index.js
2019-05-08 11:43:13 +02:00
Fabien O'Carroll
fddc13bca1 Published new versions
- @tryghost/members-auth-pages@0.2.0
2019-05-07 18:09:44 +02:00
Fabien O'Carroll
00ed51f157 Added blank index.js file
no-issue

This is to ensure that node can correctly resolve the module
2019-05-07 18:08:37 +02:00
Fabien O'Carroll
4633ea06e4 Published new versions
- @tryghost/members-api@0.1.1
 - @tryghost/members-auth-pages@0.1.2
2019-05-07 17:40:25 +02:00
Fabien O'Carroll
9507aeb10f Published new versions
- @tryghost/members-auth-pages@0.1.1
2019-05-07 17:36:02 +02:00
Fabien O'Carroll
ac847dbecd Added default test dir and eslintrc
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
986791d091 Added package.json and deps for members-api
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
9e65199f14 Updated require paths for local modules
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
7ec3f61e71 Refactored directory structure
no-issue

This is to better fit the index.js, lib model
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
7b6e73e093 Refactored lib/members to remove unused router
no-issue

Also exposes the getPublicKeys method
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
2c9130a244 Removed serving of auth pages from lib/members
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
bf156b0b79 Removed auth pages from lib/members
no-issue

These have been moved to https://github.com:TryGhost/Members
2019-05-07 17:35:17 +02:00
Zimo
5101735f9d Updated members payment failed copy and style
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
79f31b7323 Updated token generation to use plans on member
no-issue

This is to remove duplication of logic, that now lives solely in the
getMember method
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
239237f402 Updated getMember to return plans
no-issue

Plans are distinct from subscriptions, as in theory a subscription could
have many plans. These moves the construction of the plans array into
the getMember function so that every consumer has access to the same
data.
2019-05-07 17:35:17 +02:00
Rish
618f7e35cc Updated signup flow to handle invalid payments
no issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
371a0698a6 Fixed bug with deleting members after config change 2019-05-07 17:35:17 +02:00
Fabien O'Carroll
c1a85e8bc3 Updated members auth pages to use gateway-protocol (#10695)
no-issue

This swaps out a hand copied library with the published one on npm
2019-05-07 17:35:17 +02:00
Zimo
9e53c6332a Added close event on member pages background click 2019-05-07 17:35:17 +02:00
Peter Zimon
540977fcb8 Members refine buttons (#10692)
* Members: disabled signup button during signup

* Members: disabled non-Stripe signup button during signup

* Members: added check to Log in button logged in state
2019-05-07 17:35:17 +02:00
Zimo
d63127bcdc Updated mobile styles for members upgrade screen 2019-05-07 17:35:17 +02:00
Fabien O'Carroll
ac9daac9f2 Fixed subscription issue with null coupons
no-issue

Coupons were being sent as null to the api, so we support non required fields
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
6e37c50ce7 Added default disabled state of false to FormInput
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
43d65d0709 Removed unused onClick handler in StripeSubscribePage
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
c1c13379c7 Added coupon support to StripeSubscribePage
no-issue

Only shows the (disabled) input when a coupon is available
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
9a5abbbde2 Cleaned up render{Subscribe,Upgrade}Page
no-issue

- ensured promises are returned
- removed unused prop
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
016e29c5a8 Added CouponInput component
no-issue

This can be used in the subscribe pages to pass coupon info through
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
e0225b8b54 Added support for disabled form elements
no-issue

This can be used for a coupon input in future
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
fbe6ba4b49 Updated members api and gateway to pass coupo
no-issue

This will allow the auth pages and members sdk to pass coupons through
to the api.
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
f99d66d8b9 Passed coupon from metadata through to stripe
no-issue

This will allow us to send through coupons from the api layer and have
stripe handle the rest :)
2019-05-07 17:35:17 +02:00
Rish
b00c82d3a6 Added spinner on member signup pages
no issue
2019-05-07 17:35:17 +02:00
Rish
0fbc808ff9 Updated member signin page to show logged in status
no issue
2019-05-07 17:35:17 +02:00
Zimo
8cb3c1510d Added fade in for signup complete page 2019-05-07 17:35:17 +02:00
Peter Zimon
43adc432f5 Members refinements (#10689)
* Updated close animation speed for members pages
* Updated responsive styles for members mobile screens 
* Adding spinner CSS to members pages
* Adding members signup complete page
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
10bfe05b39 Updated theme layer to use members-ssr (#10676)
* Removed support for cookies in members auth middleware

no-issue

The members middleware will no longer be supporting cookies, the cookie
will be handled by a new middleware specific for serverside rendering,
more informations can be found here:

https://paper.dropbox.com/doc/Members-Auth-II-4WP4vF6coMqDYbSMIajo5

* Removed members auth middleware from site app

no-issue

The site app no longer needs the members auth middleware as it doesn't
support cookies, and will be replaced by ssr specific middleware.

https://paper.dropbox.com/doc/Members-Auth-II-4WP4vF6coMqDYbSMIajo5

* Added comment for session_secret setting

no-issue

We are going to have multiple concepts of sessions, so adding a comment
here to be specific that this is for the Ghost Admin client

* Added theme_session_secret setting dynamic default

no-issue

Sessions for the theme layer will be signed, so we generate a random hex
string to use as a signing key

* Added getPublicConfig method

* Replaced export of httpHandler with POJO apiInstance

no-issue

This is mainly to reduce the public api, so it's easier to document.

* Renamed memberUserObject -> members

no-issue

Simplifies the interface, and is more inline with what we would want to export as an api library.

* Removed use of require options inside members

no-issue

This was too tight of a coupling between Ghost and Members

* Simplified apiInstance definition

no-issue

* Added getMember method to members api

* Added MembersSSR instance to members service

* Wired up routes for members ssr

* Updated members auth middleware to use getPublicConfig

* Removed publicKey static export from members service

* Used real session secret

no-issue

* Added DELETE /members/ssr handler

no-issue

This allows users to log out of the theme layer

* Fixed missing code property

no-issue

Ignition uses the statusCode property to forward status codes to call sites

* Removed superfluous error middleware

no-issue

Before we used generic JWT middleware which would reject, now the
middleware catches it's own error and doesn't error, thus this
middleware is unecessary.

* Removed console.logs

no-issue

* Updated token expirty to hardcoded 20 minutes

no-issue

This returns to our previous state of using short lived tokens, both for
security and simplicity.

* Removed hardcoded default member settings

no-issue

This is no longer needed, as defaults are in default-settings.json

* Removed stripe from default payment processor

no-issue

* Exported `getSiteUrl` method from url utils

no-issue

This keeps inline with newer naming conventions

* Updated how audience access control works

no-issue

Rather than being passed a function, members api now receives an object
which describes which origins have access to which audiences, and how
long those tokens should be allowed to work for. It also allows syntax
for default tokens where audience === origin requesting it. This can be
set to undefined or null to disable this functionality.

{
    "http://site.com": {
        "http://site.com": {
            tokenLength: '5m'
        },
        "http://othersite.com": {
            tokenLength: '1h'
        }
    },
    "*": {
        tokenLength: '30m'
    }
}

* Updated members service to use access control feature

no-issue

This also cleans up a lot of unecessary variable definitions, and some
other minor cleanups.

* Added status code to auth pages html response

no-issue

This was missing, probably default but better to be explicit

* Updated gateway to have membersApiUrl from config

no-issue

Previously we were parsing the url, this was not very safe as we can
have Ghost hosted on a subdomain, and this would have failed.

* Added issuer to public config for members

no-issue

This can be used to request SSR tokens in the client

* Fixed path for gateway bundle

no-issue

* Updated settings model tests

no-issue

* Revert "Removed stripe from default payment processor"

This reverts commit 1d88d9b6d73a10091070bcc1b7f5779d071c7845.

* Revert "Removed hardcoded default member settings"

This reverts commit 9d899048ba7d4b272b9ac65a95a52af66b30914a.

* Installed @tryghost/members-ssr

* Fixed tests for settings model
2019-05-07 17:35:17 +02:00
Rish
345d69102a Updated subscription data in member request
no issue

- Added subscription amount to member subscription data
2019-05-07 17:35:17 +02:00
Rishabh Garg
daf5a41af0 Added Admin API for deleting members (#10673)
no issue

- Added new API to delete members
- Added methods to handle e2e member deletion
- Deleting member via Admin leads to
  - Removal of member from payment processor and cancelling all active subscriptions immediately
  - Removal of member information from DB
2019-05-07 17:35:17 +02:00
Rish
bc889ae9a0 Refactored members auth flow with dynamic settings
no issue

- Updated members auth flow UI
- Updated members settings and routing to be dynamic
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
25aac1359d Added support for serverside rendering of members content (#10522)
no-issue

- Added member auth middleware to siteApp
- Passed member as context in routing service
- set Cache-Control: private for member requests
- fucked up some tests
- Added member as global template variable
- Updated tokens to have expiry of subscription_period_end
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
121b7d200f Improved Members security and performance (#10511)
no-issue

* Corrected function names for rpc methods

* Updated gateway to store tokens locally

* Fixed lint

* Added hardcoded 30 minute expiry for member tokens

* Added default contentApiAccess config;

* Updated validateAudience method

This is required for security, we need to restrict which domains can access
tokens meant for the content api
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
eb94871b6c Added upgrade page to members auth (#10513)
no-issue
2019-05-07 17:35:17 +02:00
Zimo
3b7d35ed0a Applying basic styles to members popups
no issue
2019-05-07 17:35:17 +02:00
Rish
a06d924493 Updated members modal UI structure
no issue
2019-05-07 17:35:17 +02:00
Rishabh Garg
beeedf7005 Updated signup page for members (#10493)
no issue

* Added new subscribe page with stripe integration
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
464caaf5df Updated product hashseed to be hardcoded (#10484)
no-issue
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
cd674fb470 Added config endpoint to Member API (#10467)
no-issue

* Added getPublicConfig method to stripe payment processor
* Added getPublicConfig method to subscriptions service
* Added initial config endpoint for members api
* Added getConfig method to members gateway
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
88b9f25541 Added initial subscription support with stripe to Members API (#10460)
These changes introduce a new "service" to the members api, which handles getting and creating subscriptions.

This is wired up to get subscription information when creating tokens, and attaching information to the token, so that the Content API can allow/deny access. 

Behind the subscription service we have a Stripe "payment processor", this holds the logic for creating subscriptions etc... in Stripe.

The logic for getting items out of stripe uses a hash of the relevant data as the id to search for, this allows us to forgo keeping stripe data in a db, so that this feature can get out quicker.
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
e1ba916ce6 Refactored auth pages for future flows (#10458)
no-issue

* Used camelCase for gateway method calls
* Added some components for building blocks of forms
* Added input specific components
* Added Form component
    This handles collecting the data to submit and sharing state between forms
* Added Pages component to handle urls
* Added the pages for the popup
* Added MembersProvider component
    This is designed to give its children access to gateway methods
* Added Modal component
    This wraps the pages and handles dispatching form submissions to the members gateway
* Refactored index.js to use new components/pages
* Fixed default page from Signup -> Signin
2019-05-07 17:35:17 +02:00
Rishabh Garg
0b2d70d617 Added new admin API for members (#10435)
no issue

- Added read and browse admin API for members
2019-05-07 17:35:17 +02:00
Rish
740209e2e4 Fixed console getting cleared on dev start
closes https://github.com/TryGhost/Ghost/issues/10409

- Removed `clearConsole` on preact cli
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
5ffdfe9875 Refactored members for management api (#10408)
no-issue
2019-05-07 17:35:17 +02:00
Rish
7ef520c2ea Fixed error handling for members reset password
no-issue

- Both input and form error was shown on submitting reset-password form
- Does not submit form anymore in case of validation errors
2019-05-07 17:35:17 +02:00
Peter Zimon
8d87eedcb4 Members auth ui refinements (#10279)
* Update mobile modal animations
* Member popup input error and placeholder refinements
* Adding close animation to members auth popups
* Improve members auth dialog
* Refine members reset password design
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
99aeda5909 Removed ssoOriginCheck from signout endpoint (#10277)
no-issue

the ssoOriginCheck exists to ensure that we only allow signin/signup to
be called from the specified auth page, this is a very minor security
feature in that it forces signins to go via the page you've designated.
signout however does not need this protection as the call to signout
completely bypasses any UI (this is the same for the call to /token)
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
b219e26ea6 Added members lib module (#10260)
* Added members library inc. gateway

refs #10213

* Added the auth pages and build steps for them

refs #10213

* Cleaned up logs

* Updated gruntfile to run yarn for member auth

* Design refinements on members popups

* UI refinements

* Updated backend call to trigger only if frontend validation passes

* Design refinements for error messages

* Added error message for email failure

* Updated request-password-reset to not attempt to send headers twice

* Updated preact publicPath to relative path

* Build auth pages on init
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
e511fcf4d9 Renamed index.js to app.js
no-issue

This is so when requiring the module we don't require a preact app in
2019-05-07 17:35:17 +02:00
Fabien O'Carroll
adf8da686a Updated package.json to match packages
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
07e15b8f68 Added blank index.js
no-issue

This is to ensue the module is a valid node module
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
2731953423 Included dist and index.js in package files array
no-issue

This is to ensure the dist directory is including the the tarball for
npm, and that the module has an index.js file so it can be
requires/resolved
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
3679f10783 Fixed clean script to use dist directory
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
fd07779c1e Renamed index.js to app.js
no-issue

This is so when requiring the module we don't require a preact app in
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
3f71eccc77 Updated output public path to use root
no-issue

When installing this module in another project, we want to serve the
entire `dist` directory as-is, on whichever path we want, rather than
enforicing a /static after the relative part.
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
b31162b182 Renamed package to @tryghost/members-auth-pages
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
341d4294fc Updated to preact-cli@next
no-issue

This version includes support for workspaces
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
31d8ab12d7 Disabled linting temporarily
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
1bad6dee4e Fixed linting for auth-pages
no-issue
2019-05-07 17:15:50 +02:00
Zimo
d805f93c14 Updated members payment failed copy and style
no-issue
2019-05-07 17:15:50 +02:00
Rish
0872ff4e9b Updated signup flow to handle invalid payments
no issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
946514d630 Updated members auth pages to use gateway-protocol (#10695)
no-issue

This swaps out a hand copied library with the published one on npm
2019-05-07 17:15:50 +02:00
Zimo
0db210ab68 Added close event on member pages background click 2019-05-07 17:15:50 +02:00
Peter Zimon
25e5a31d91 Members refine buttons (#10692)
* Members: disabled signup button during signup

* Members: disabled non-Stripe signup button during signup

* Members: added check to Log in button logged in state
2019-05-07 17:15:50 +02:00
Zimo
e163f527a0 Updated mobile styles for members upgrade screen 2019-05-07 17:15:50 +02:00
Fabien O'Carroll
ce68df5462 Fixed subscription issue with null coupons
no-issue

Coupons were being sent as null to the api, so we support non required fields
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
9692a0f066 Added default disabled state of false to FormInput
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
9a842cab7c Removed unused onClick handler in StripeSubscribePage
no-issue
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
eb0463b119 Added coupon support to StripeSubscribePage
no-issue

Only shows the (disabled) input when a coupon is available
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
5cb9850784 Cleaned up render{Subscribe,Upgrade}Page
no-issue

- ensured promises are returned
- removed unused prop
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
f0f1583817 Added CouponInput component
no-issue

This can be used in the subscribe pages to pass coupon info through
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
5b063659d0 Added support for disabled form elements
no-issue

This can be used for a coupon input in future
2019-05-07 17:15:50 +02:00
Rish
f3722b6979 Added spinner on member signup pages
no issue
2019-05-07 17:15:50 +02:00
Rish
ab2f65e5a5 Updated member signin page to show logged in status
no issue
2019-05-07 17:15:50 +02:00
Zimo
26728c50a8 Added fade in for signup complete page 2019-05-07 17:15:50 +02:00
Peter Zimon
09fde87ad9 Members refinements (#10689)
* Updated close animation speed for members pages
* Updated responsive styles for members mobile screens 
* Adding spinner CSS to members pages
* Adding members signup complete page
2019-05-07 17:15:50 +02:00
Rish
19f243aed1 Refactored members auth flow with dynamic settings
no issue

- Updated members auth flow UI
- Updated members settings and routing to be dynamic
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
33c574f257 Added support for serverside rendering of members content (#10522)
no-issue

- Added member auth middleware to siteApp
- Passed member as context in routing service
- set Cache-Control: private for member requests
- fucked up some tests
- Added member as global template variable
- Updated tokens to have expiry of subscription_period_end
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
b51b6b1d43 Added upgrade page to members auth (#10513)
no-issue
2019-05-07 17:15:50 +02:00
Zimo
3fbe1981d0 Applying basic styles to members popups
no issue
2019-05-07 17:15:50 +02:00
Rish
84d09e7dc6 Updated members modal UI structure
no issue
2019-05-07 17:15:50 +02:00
Rishabh Garg
7d826c4b44 Updated signup page for members (#10493)
no issue

* Added new subscribe page with stripe integration
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
b1a1f61d5d Refactored auth pages for future flows (#10458)
no-issue

* Used camelCase for gateway method calls
* Added some components for building blocks of forms
* Added input specific components
* Added Form component
    This handles collecting the data to submit and sharing state between forms
* Added Pages component to handle urls
* Added the pages for the popup
* Added MembersProvider component
    This is designed to give its children access to gateway methods
* Added Modal component
    This wraps the pages and handles dispatching form submissions to the members gateway
* Refactored index.js to use new components/pages
* Fixed default page from Signup -> Signin
2019-05-07 17:15:50 +02:00
Rish
0755036926 Fixed console getting cleared on dev start
closes https://github.com/TryGhost/Ghost/issues/10409

- Removed `clearConsole` on preact cli
2019-05-07 17:15:50 +02:00
Rish
42bed3c22d Fixed error handling for members reset password
no-issue

- Both input and form error was shown on submitting reset-password form
- Does not submit form anymore in case of validation errors
2019-05-07 17:15:50 +02:00
Peter Zimon
e85a6a1cac Members auth ui refinements (#10279)
* Update mobile modal animations
* Member popup input error and placeholder refinements
* Adding close animation to members auth popups
* Improve members auth dialog
* Refine members reset password design
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
07b6e73bd8 Added members lib module (#10260)
* Added members library inc. gateway

refs #10213

* Added the auth pages and build steps for them

refs #10213

* Cleaned up logs

* Updated gruntfile to run yarn for member auth

* Design refinements on members popups

* UI refinements

* Updated backend call to trigger only if frontend validation passes

* Design refinements for error messages

* Added error message for email failure

* Updated request-password-reset to not attempt to send headers twice

* Updated preact publicPath to relative path

* Build auth pages on init
2019-05-07 17:15:50 +02:00
Fabien O'Carroll
8d8c8a69ca Published new versions
- @tryghost/members-ssr@0.1.5
2019-05-06 12:25:45 +02:00
Fabien O'Carroll
7e5733998e Removed request stream consumption unless required
no-issue

This is to avoid the getMemberDataFromCookie helper consuming the
request stream before other handlers can read from it.
2019-05-06 12:23:27 +02:00
Fabien O'Carroll
9f307746ca Published new versions
- @tryghost/members-browser-auth@0.1.1
 - @tryghost/members-gateway-api@0.1.2
 - @tryghost/members-gateway-protocol@0.1.1
 - @tryghost/members-ssr@0.1.4
 - @tryghost/members-theme-bindings@0.1.0
2019-04-23 16:47:39 +02:00
Renovate Bot
67135f58e8 Pin dependencies 2019-04-23 16:46:09 +02:00
Fabien O'Carroll
ce7f55b7b9 Added clean commands for prebuild and pretest
no-issue
2019-04-23 16:45:05 +02:00
Fabien O'Carroll
5b8fe0f643 Updated init method to take siteUrl named param 2019-04-23 16:42:11 +02:00
Fabien O'Carroll
87690f9a03 Added members-theme-bindings module
no-issue
2019-04-23 16:42:11 +02:00
Renovate Bot
9e996857bc Update dependency jsdom to v15 2019-04-23 10:16:13 +02:00
Renovate Bot
7187a4e074 Pin dependency keypair to 1.0.1 2019-04-23 10:15:48 +02:00
Renovate Bot
b5e9bf7047 Update dependency jsdom to v14.1.0 2019-04-22 03:43:40 +00:00
Renovate Bot
f374362ba5 Update Test & linting packages 2019-04-22 01:29:05 +00:00
Fabien O'Carroll
c70f1c7b45 Published new versions
- @tryghost/members-browser-auth@0.1.0
 - @tryghost/members-gateway-api@0.1.1
2019-04-18 14:09:55 +02:00
Fabien O'Carroll
bfa1354ef4 Updated gateway-api package.json 2019-04-18 14:08:11 +02:00
Fabien O'Carroll
d5972c137c Added initial browser-auth package 2019-04-18 14:07:59 +02:00
Fabien O'Carroll
3432d6801b Published new versions
- @tryghost/members-gateway-api@0.1.0
2019-04-18 13:50:06 +02:00
Fabien O'Carroll
8fe55f2306 Added initial gateway-api module 2019-04-18 13:49:26 +02:00
Fabien O'Carroll
6aa6da6da0 Published new versions
- @tryghost/members-gateway-protocol@0.1.0
 - @tryghost/members-ssr@0.1.3
2019-04-18 13:09:32 +02:00
Fabien O'Carroll
13b7f536e8 Enabled public access for members-gateway-protocol 2019-04-18 12:21:56 +02:00
Fabien O'Carroll
e0643344a2 Published new versions
- @tryghost/members-ssr@0.1.2
2019-04-18 12:16:29 +02:00
Fabien O'Carroll
766635ab85 Fixed lint task for members-ssr package 2019-04-18 11:40:42 +02:00
Fabien O'Carroll
8ce18f2b4b Removed sdk dir (#6) 2019-04-18 11:40:22 +02:00
Fabien O'Carroll
182b43b5b2 Created members-gateway-protocol package (#5) 2019-04-18 11:03:44 +02:00
Fabien O'Carroll
99c4a454ad Added support for signup buttons w/ coupons
no-issue

This will allows themes to have an element like:
<el data-members-signup data-members-coupon="blah"/>

To open the signup page, and optionally apply a coupon
2019-04-17 11:30:51 +02:00
Fabien O'Carroll
3c3cbabacf Refactored dropin script event handlers
no-issue
2019-04-17 11:30:51 +02:00
Fabien O'Carroll
547b27aa68 Added signup method to open signup page w/ coupon
no-issue

This is so that coupons can be passed to the auth pages
2019-04-17 11:30:51 +02:00
Rish
cf7c8df6f7 Published new versions
- @tryghost/members-ssr@0.1.1
2019-04-16 19:14:57 +05:30
Rish
a9453604cc Updated publish config 2019-04-16 19:13:45 +05:30
Rish
8fd78ab221 Published new versions
- @tryghost/members-ssr@0.1.0
2019-04-16 18:14:59 +05:30
Fabien O'Carroll
b22d254c12 Updated members-ssr package name 2019-04-16 12:28:58 +02:00
Fabien O'Carroll
60cdf82354 Removed lazy loading 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
de410052dd Removed lint task for members-ssr
no-issue

For some reason this task hangs. Need to fix
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
68fa28b4f5 Updated dropin script to use SSR tokens
no-issue

This finalises the use of SSR for the dropin script
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
73b18e6566 Added getSSRToken method to members layer2
no-issue

This fetches a token with an audience of the members api to be used with SSR
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
cd5a9d0c6b Fixed lazy load of auth pages
no-issue

dumb mistake, cant call then on a function
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
37266cf552 Added getConfig method to members layer1
no-issue

This can be used for fetching information about the members api
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
ee11ef5cf4 Added lazyLoad support for auth pages
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
ae32d3e2b5 Updated README
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
32e81fb030 Updated example
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
27bb3a6955 Updated theme-dropin to use correct audience for SSR
no-issue

This is to be inline with the updated use of audience claims
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
632fdce8b1 Added deleteSession method
no-issue

This will be used for logout
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
8ae95f6d32 Updated to return Promise.reject rather than throw
no-issue

This is cleaner IMO
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
eaf163cb9c Updated to use membersApi iss as expected aud
no-issue

This is because we now use specific URLs for audiences claims, e.g. for
members running locally the audience would be:

    - http://localhost:2368/ghost/api/v2/members/
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
524e32bed5 Removed unused token parsing and cookie checks
no-issue

We no longer store anything in document.cookie, so all of this code is
redundant
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
17fd366e3b Updated SDK to use new serverside rendering
no-issue
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
db74ef3d1a Used return value of {set,remove}Cookie
no-issue

Soon these functions will make network calls, returning them allows us to use promises
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
02468bfe0c Fixed cookie verification handling
no-issue

turns out the get method fails if the cookie is missing, rather than returning null
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
1ee0720ed5 Ran yarn add concat-stream
no-issue

Used for getting contents of request stream
2019-04-16 12:22:55 +02:00
Fabien O'Carroll
5c9ed65b06 Added runnable example w/ mock membersApi 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
2e40e253d6 Implemented MVP 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
47f46d5b9b Added example usage to README 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
e55430c726 Ran yarn add --dev keypair 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
d4a8e3dc1e Ran yarn add cookies jsonwebtoken 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
803b09664c Ran slimer new members-ssr 2019-04-16 12:22:55 +02:00
Fabien O'Carroll
cbbd28cc90 Ensured that signups/signins get fresh token
no-issue

This is to avoid any weirdness around the two requests for signup to a
paid site. First we have the signup request, and then we have the create
subscription request. After the first signup request a "signedin" event
is fired, fetching a token, but one without any plans.
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
036b195af9 Fixed upgrade not updating member state on reload
no-issue

The problem here is that upgrade would recieve the same token from the
localStorage cache, rather than a brand new token with the plan info.
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
487326aef5 Updated layer2 to pass fresh param to layer1
no-issue

This is needed so that the theme dropin script can ensure that a new
token is recieved after upgrade
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
709a1cce4e Updated layer1 to pass fresh param to gateway
no-issue

This is needed so that we can request a brand new token from layer1, in
the instance of knowing user data has changed, we can have a token whihc
reflects it.
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
5dfcbb6b5e Added missing semicolons
no-issue
2019-03-25 09:35:07 +01:00
Fabien O'Carroll
e553ea6e02 Corrected refs for content-api and layer1 deps
no-issue

content-api is not in same repo any more, layer1 brought inline with how
layer2 works
2019-03-25 09:35:07 +01:00
Rish
e6e5209a8c Moved members SDK packages from Ghost-SDK 2019-03-14 13:16:15 +05:30
Rish
ef01a65da5 Initial commit 2019-03-14 12:14:23 +05:30
Fabien O'Carroll
cfac2339cb Updated members drop-in script to set cookie for SSR (#61)
no-issue
2019-02-25 10:17:58 +01:00
Rish
db8d51f458 Updated members SDK 2019-02-23 17:29:02 +07:00
Fabien O'Carroll
7c360aa51d Updated members SDK to handle upgrade (#52)
no-issue

Adds update method to layer 2

Adds update support to drop in script

Improves flickering
2019-02-23 04:33:14 +01:00
Fabien O'Carroll
8d2bbe5b0d Updated members sdk to latest content-api (#45)
no-issue

* Upgrade to latest content api
* Removed unused closeAuth

* Removed auto close of popup and wait for event
* Added globals to top of file
2019-02-06 17:03:55 +01:00
John O'Nolan
0f6809bab5 2019 2019-01-01 14:38:49 +00:00
Fabien O'Carroll
51be84182d Updated members sdks for third party use (#25)
* Pass container from layer2 for iframes to be attached

* Updated layer2 to resolve with success for auth page methods

* Updated theme dropin to reload when auth method succeeds
2018-12-10 15:55:10 +07:00
Fabien O'Carroll
b990761136 Updated layer2 to listen to close request from auth popup 2018-12-09 14:00:02 +07:00
Fabien O'Carroll
aec178ee8b Removed hash after password reset 2018-12-07 18:59:47 +07:00
Fabien O'Carroll
cf6822ba36 Fixed JWT regex 2018-12-07 16:21:52 +07:00
Fabien O'Carroll
9b105e7590 Members update (#24)
* Ignored build

* Deleted build dir

* Updated layer1 to interface with simplified gateway

* Updated layer1 to only handle gateway

* Updated layer2 to handle gateway & auth, but no DOM

* Updated theme dropin to handle DOM

* Updated layer2;

* Added password-reset flow to the member dropin script

* Reload page after password reset
2018-12-07 14:32:23 +05:30
Zimo
eddcbaff5b Update position of auth iFrame 2018-12-04 19:42:47 +01:00
Zimo
481b9d6459 Update members iFrame style 2018-12-04 19:33:21 +01:00
Zimo
0c8af4fa64 Update members auth iFrame style 2018-12-04 19:24:03 +01:00
Fabien O'Carroll
cb5592d853 Updated member layers (#23)
* Corrected the event handling of layer0

* Updated layer1 to use layer0

* Updated dropin script to read blogUrl from window;
2018-12-04 09:24:04 +05:30
Fabien O'Carroll
399219b6ea Members layer0 (#22)
* Created initial layer0 sdk

* Updated layer1 to use layer0

* Updated layer2 to accept and pass blogUrl to layer1

* Updated theme-dropin to pass blogUrl to layer2

* Updated yarn.lock
2018-11-23 15:43:16 +07:00
Rishabh Garg
56bbc14d43 Created drop-in script module for ghost themes (#19)
* Added WIP drop-in script for prototype

* Cleaned up theme dropping script module

- Updated layer2 to work with reload as an option, as well as sign-in cta on the page

* Handle cat failure

* Updated SDK data attires

* Used commonjs exports

* Used browserify for the build
2018-11-15 14:36:51 +07:00
Fabien O'Carroll
dacd58c768 Update packages/members/layer2/index.js 2018-11-14 17:36:26 +05:30
Fabien O'Carroll
52759bceb1 Updated layer2 to inline with drop in solution 2018-11-14 17:36:26 +05:30
Fabien O'Carroll
37e8d5b670 Updated README for members layer2 SDK 2018-11-14 15:12:59 +07:00
Fabien O'Carroll
51a5e53c06 Updated layer2 drop in script to set/unset cookies (#17)
* Updated layer2 drop in script to set/unset cookies

* Use ES5 and remove transforms
2018-11-14 15:09:29 +07:00
Fabien O'Carroll
7fdbd57667 Fixed logout for members layer1
no-issue

LocalStorage converts items to strings so "null" was being stored.
2018-11-14 12:06:46 +07:00
Fabien O'Carroll
d4f8fc89a3 Created initial layer2 for Members SDK
closes #9
2018-11-14 08:47:17 +05:30
Fabien O'Carroll
d201b62f73 Fixed jwt sign method call
no-issue
2018-11-13 15:23:36 +05:30
Rish
7366f6bf4c Updated members layer1 to handle create/destroy/get jwt token
closes #11

- Uses signed jwt with NONE algorithm
- Token stored in localStorage
2018-11-12 13:59:59 +07:00
Rish
32ee16a081 Created members-layer1 sdk base structure
closes #8
2018-11-09 13:24:16 +05:30