Skip to main content

Class: BaseUser

Types.BaseUser

Objects of this type represent an authenticated user. If you have a token you can instantiate your own User. This class is server side rendering (SSR) friendly as it only uses the fetch API with no other dependencies on browser APIs.

A User object gives you access to methods to:

Remarks

User objects are safe for serialization, you can pass them to other contexts with the postMessage family of functions.

Hierarchy​

Constructors​

constructor​

• new BaseUser(token, options?)

Reconstruct an authenticated user from its token value.

Throws

TypeError If the given optionsOrSid, if defined, fail validation, or the given token cannot be decoded.

Parameters​

NameTypeDescription
tokenstringA user token value.
options?SlashIDOptions-

Accessors​

ID​

• get ID(): string

This user's ID. Use this property in your backend services when interacting with the SlashID User Management API.

Returns​

string


anonymous​

• get anonymous(): boolean

Indicates if the user is an anonymous user

Returns​

boolean


authentication​

• get authentication(): FactorMethod[]

Indicates which authentication methods the user has been verified with. It can contain multiple items in case of multi factor authentication.

Returns​

FactorMethod[]


authentications​

• get authentications(): Authentication[]

Indicates which authentication methods the user has been verified with, including the handles used for each method.

Returns​

Authentication[]


firstLogin​

• get firstLogin(): boolean

Indicates whether the user has been just registered, otherwise it's a returning user.

Returns​

boolean


oid​

• get oid(): string

The organization ID this user belongs to.

Returns​

string


token​

• get token(): string

The entire, signed authentication token of this user.

Returns​

string


tokenClaims​

• get tokenClaims(): UserToken

The claims of the user token.

Returns​

UserToken


tokenContainer​

• get tokenContainer(): string

The entire token container

Returns​

string

either the token container string or an empty string


tokenContainerClaims​

• get tokenContainerClaims(): undefined | TokenContainer

If the user instance is created with a TokenContainer this will return the claims of the token container. Otherwise it will return undefined.

Returns​

undefined | TokenContainer

Methods​

addGDPRConsent​

▸ addGDPRConsent(request): Promise<GDPRConsentResponse>

Add the GDPR consent levels to the current user. Consent levels not included in the request will not be changed.

Parameters​

NameTypeDescription
requestGDPRConsentLevelswith consent levels to add

Returns​

Promise<GDPRConsentResponse>

GDPR consent info


createDirectID​

▸ createDirectID(): Promise<undefined | string>

Create a DirectID based on your token

Returns​

Promise<undefined | string>

directID token


delete​

▸ delete(attributeNames): Promise<any>

Deprecated

Use getBucket instead.

Parameters​

NameType
attributeNamesstring[]

Returns​

Promise<any>


get​

▸ get<AttributesType>(attributeNames?): Promise<AttributesType>

Deprecated

Use getBucket instead.

Type parameters​

NameType
AttributesTypeextends JsonObject

Parameters​

NameType
attributeNames?string[]

Returns​

Promise<AttributesType>


getAttributesClient​

▸ getAttributesClient(): AttributesApi

Exposes the attributes client so the Bucket instance can access it

Returns​

AttributesApi


getBucket​

▸ getBucket(bucketName?): Bucket

Creates a Bucket object used to access attributes.

Parameters​

NameTypeDefault valueDescription
bucketNamestringDefaultBucketName.end_user_read_writename of the bucket we want to access - uses "end_user_read_write" as default. You can pass in any string that corresponds to a name of a bucket set up for your organization. You can use any of the preset bucket names with corresponding permissions and scopes - DefaultBucketName.

Returns​

Bucket


getGDPRConsent​

▸ getGDPRConsent(): Promise<GDPRConsentResponse>

Fetch the GDPR consent levels for the current user.

Returns​

Promise<GDPRConsentResponse>

GDPR consent info


getGroups​

▸ getGroups(): string[]

Get an array of group names that the user belongs to.

Returns​

string[]


getHandles​

▸ getHandles(): Promise<PersonHandle[]>

Fetch all the handles associated with this user from the SlashID API.

Returns​

Promise<PersonHandle[]>

A list of handles available for the user


getOrganizations​

▸ getOrganizations(): Promise<OrganizationDetails[]>

Get the organizations the user belongs to.

Returns​

Promise<OrganizationDetails[]>

A list of organizations the user belongs to


getTokenForOrganization​

▸ getTokenForOrganization(oid): Promise<string>

Given an organization ID, get a new token for the same user in the Organization specified by the Organization ID.

For the call to succeed the following conditions must be met:

  • the token must be valid at the time of the request
  • the two Organizations must share the same person pool
  • the user must be a member of both Organizations

This operation does not count as an authentication, so the new token will have the same expiration time as the original.

Parameters​

NameType
oidstring

Returns​

Promise<string>

A new token for the specified Organization ID


isAuthenticated​

▸ isAuthenticated(): Promise<boolean>

Indicates if the user is authenticated

For anonymous users this will return false

Returns​

Promise<boolean>


logout​

▸ logout(): Promise<void>

Log out of the current session. Clears the SlashID token. Will attempt revoking the token server-side.

Returns​

Promise<void>


removeGDPRConsent​

▸ removeGDPRConsent(request): Promise<void>

Remove the GDPR consent levels from the current user. Consent levels not included in the request will not be changed.

Parameters​

NameTypeDescription
requestDeleteConsentGdprRequestwith consentLevels to remove

Returns​

Promise<void>


removeGDPRConsentAll​

▸ removeGDPRConsentAll(): Promise<void>

Remove all stored GDPR consent levels from the current user. Consent levels not included in the request will not be changed, unless deleteAll flag is set to true.

Returns​

Promise<void>


set​

▸ set<AttributesType>(attributes): Promise<void>

Deprecated

Use getBucket instead.

Type parameters​

NameType
AttributesTypeextends JsonObject

Parameters​

NameType
attributesAttributesType

Returns​

Promise<void>


setGDPRConsent​

▸ setGDPRConsent(request): Promise<GDPRConsentResponse>

Set the GDPR consent levels for the current user. This will overwrite any existing consent levels and set the consent levels to only the ones included with the request.

Parameters​

NameTypeDescription
requestGDPRConsentLevelswith consentLevels to set

Returns​

Promise<GDPRConsentResponse>

GDPR consent info


toJSON​

▸ toJSON(): string

User objects encode to JSON as a string containing their token value.

Example

JSON.stringify(user) === "\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9obiBTbWl0aCIsImlhdCI6MTUxNjIzOTAyMn0.dzKuKf6u9G7Crk9tsFnS2cey1zglWTFQv_hjWjmtXms\""

Returns​

string


toString​

▸ toString(): string

User objects stringify to their token value for convenience:

Example

user.toString() === "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9obiBTbWl0aCIsImlhdCI6MTUxNjIzOTAyMn0.dzKuKf6u9G7Crk9tsFnS2cey1zglWTFQv_hjWjmtXms"

Returns​

string


validateToken​

▸ validateToken(): Promise<ValidateTokenResponse>

Resolves to a token validity info object which tells if the token is genuine and if it has expired yet.

Returns​

Promise<ValidateTokenResponse>

Token validity info


createAnonymousUser​

▸ Static createAnonymousUser(options): Promise<BaseUser>

Parameters​

NameType
optionsSlashIDOptions

Returns​

Promise<BaseUser>