Skip to main content

Class: AnonymousUser

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 AnonymousUser(token, slashid)

Reconstruct an anonymous user from its token value. Call the id method to authenticate the user. If this results with registering a new user, the underlying user ID will be the same as the originating anonymous user.

Instances can only be constructed in a browser environment due to dependency on SlashID.

Throws

TypeError the given token cannot be decoded.

Parameters​

NameTypeDescription
tokenstringA user token value.
slashidSlashIDSlashID instance

Overrides​

BaseUser.constructor

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

Inherited from​

BaseUser.ID


anonymous​

• get anonymous(): boolean

Indicates if the user is an anonymous user

Returns​

boolean

Inherited from​

BaseUser.anonymous


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[]

Inherited from​

BaseUser.authentication


authentications​

• get authentications(): Authentication[]

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

Returns​

Authentication[]

Inherited from​

BaseUser.authentications


firstLogin​

• get firstLogin(): boolean

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

Returns​

boolean

Inherited from​

BaseUser.firstLogin


oid​

• get oid(): string

The organization ID this user belongs to.

Returns​

string

Inherited from​

BaseUser.oid


token​

• get token(): string

The entire, signed authentication token of this user.

Returns​

string

Inherited from​

BaseUser.token


tokenClaims​

• get tokenClaims(): UserToken

The claims of the user token.

Returns​

UserToken

Inherited from​

BaseUser.tokenClaims


tokenContainer​

• get tokenContainer(): string

The entire token container

Returns​

string

either the token container string or an empty string

Inherited from​

BaseUser.tokenContainer


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

Inherited from​

BaseUser.tokenContainerClaims

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

Inherited from​

BaseUser.addGDPRConsent


createDirectID​

▸ createDirectID(): Promise<undefined | string>

Create a DirectID based on your token

Returns​

Promise<undefined | string>

directID token

Inherited from​

BaseUser.createDirectID


delete​

▸ delete(attributeNames): Promise<any>

Deprecated

Use getBucket instead.

Parameters​

NameType
attributeNamesstring[]

Returns​

Promise<any>

Inherited from​

BaseUser.delete


get​

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

Deprecated

Use getBucket instead.

Type parameters​

NameType
AttributesTypeextends JsonObject

Parameters​

NameType
attributeNames?string[]

Returns​

Promise<AttributesType>

Inherited from​

BaseUser.get


getAttributesClient​

▸ getAttributesClient(): AttributesApi

Exposes the attributes client so the Bucket instance can access it

Returns​

AttributesApi

Inherited from​

BaseUser.getAttributesClient


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

Inherited from​

BaseUser.getBucket


getGDPRConsent​

▸ getGDPRConsent(): Promise<GDPRConsentResponse>

Fetch the GDPR consent levels for the current user.

Returns​

Promise<GDPRConsentResponse>

GDPR consent info

Inherited from​

BaseUser.getGDPRConsent


getGroups​

▸ getGroups(): string[]

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

Returns​

string[]

Inherited from​

BaseUser.getGroups


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

Inherited from​

BaseUser.getHandles


getOrganizations​

▸ getOrganizations(): Promise<OrganizationDetails[]>

Get the organizations the user belongs to.

Returns​

Promise<OrganizationDetails[]>

A list of organizations the user belongs to

Inherited from​

BaseUser.getOrganizations


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

Inherited from​

BaseUser.getTokenForOrganization


id​

▸ id(handle, authenticationFactor): Promise<User>

Authenticates the [AnonymousUser], on success the user is now a permanently registered user.

Parameters​

NameType
handlePersonHandle
authenticationFactorFactor

Returns​

Promise<User>

Promise<BrowserUser>


isAuthenticated​

▸ isAuthenticated(): Promise<boolean>

Indicates if the user is authenticated

For anonymous users this will return false

Returns​

Promise<boolean>

Inherited from​

BaseUser.isAuthenticated


logout​

▸ logout(): Promise<void>

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

Returns​

Promise<void>

Inherited from​

BaseUser.logout


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>

Inherited from​

BaseUser.removeGDPRConsent


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>

Inherited from​

BaseUser.removeGDPRConsentAll


set​

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

Deprecated

Use getBucket instead.

Type parameters​

NameType
AttributesTypeextends JsonObject

Parameters​

NameType
attributesAttributesType

Returns​

Promise<void>

Inherited from​

BaseUser.set


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

Inherited from​

BaseUser.setGDPRConsent


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

Inherited from​

BaseUser.toJSON


toString​

▸ toString(): string

User objects stringify to their token value for convenience:

Example

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

Returns​

string

Inherited from​

BaseUser.toString


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

Inherited from​

BaseUser.validateToken


createAnonymousUser​

▸ Static createAnonymousUser(options): Promise<BaseUser>

Parameters​

NameType
optionsSlashIDOptions

Returns​

Promise<BaseUser>

Inherited from​

BaseUser.createAnonymousUser