n-user-api-client
A client to access the User API on the FT Membership PlatformInstallation
npm i @financial-times/n-user-api-client --save
Usage example
import {updateUserProfile} from '@financial-times/n-user-api-client';
await updateUserProfile({
session: 'abc123',
userId: 'def456',
apiHost: process.env['MEMBERSHIP_API_HOST_PROD'],
apiKey: process.env['MEMBERSHIP_API_KEY_PROD'],
apiClientId: process.env['AUTH_API_CLIENT_ID_PROD'],
userUpdate: { ... }
})
Public methods
getUserBySession
Arguments
session (string) - a valid user session ID. If stale (> 30 minutes old) then the returned user data will be redacted, some fields including address will be nulldemographicsLists (object) - optional - lists of demographics data eg positions, industries, responsibilities. If supplied they'll be used to decorate the user object. If the user has a value stored for each then that value will be marked selected in the corresponding list
Return value
A 'user object' with profile and subscription sectionsgetUserIdAndSessionData
Arguments
session (string) - a valid user session ID. If stale (> 30 minutes old) then the returned user data will be redacted, some fields including address will be nullapiHost, apiKey - the consumer app should pass these in, based on Vault env vars
Return value
A user ID (string)getPaymentDetailsBySession
Arguments
session (string) - a valid user session ID. If stale (> 30 minutes old) then the returned user data will be redacted, some fields including address will be nullReturn value
A payment method detail Object (varies in form depends on the type of the method - CreditCard|PayPal|DirectDebit), returnsnull
if the user hasn't got a payment method yet.loginUser
Arguments
email (string)password (string)
remoteIp (string) - the IP of the user
countryCode (string) - the country the user is located in
userAgent (string) - the User-Agent header of the user
apiHost, apiKey - the consumer app should pass these in, based on Vault env vars
appName - the name of the app using
n-user-api-client
Return value
fresh session data will be returned.updateUserProfile
Arguments
session (string) - a valid user session ID. If stale (> 30 minutes old) then a valid authorization API token won't be returned and the overall request will failapiHost, apiKey, apiClientId - the consumer app should pass these in, based on Vault env vars
userId (string)
userUpdate - a user object. It will be merged into a fresh copy of the user's record retrieved from the database
Return value
The updated user objectchangeUserPassword
Arguments
session (string) - a valid user session ID. If stale (> 30 minutes old) then a valid authorization API token won't be returned and the overall request will failapiHost, apiKey, apiClientId - the consumer app should pass these in, based on Vault env vars
userId (string)
passwordData (object) - in this format
appName - the name of the app using
n-user-api-client
Return value
If successful, the user will be reauthenticated and the fresh session data will be returned.Build
The module is written in typescript - compile to the dist/ folder with:make build