Login Configurations

Manage Login Configurations and User Groups with Affinidi Login Service.

Install Dependency

Package: @affinidi-tdk/login-configuration-client

npm install @affinidi-tdk/login-configuration-client --save

Check the latest version on the npm registry or view the source on GitHub.

Classes and Methods

Configurations API

Manages Login Configurations to integrate Affinidi Login.

createLoginConfigurations

Creates a new Login Configuration.

Parameters

Configuration details for the application including name and redirect URIs.

Example

import { ConfigurationApi, Configuration, CreateLoginConfigurationInput } from '@affinidi-tdk/login-configuration-client'

const api = new ConfigurationApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const request: CreateLoginConfigurationInput = {
  name: 'Sample App',
  redirectUris: ['http://localhost:3000/auth/callback'],
}

const { data } = await api.createLoginConfigurations(request)

deleteLoginConfigurationsById

Deletes an existing Login Configuration by ID.

Parameters

configurationId string Required
ID of the Login Configuration to delete.

Example

import { ConfigurationApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new ConfigurationApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

await api.deleteLoginConfigurationsById('<CONFIG_ID>')

getClientMetadataByClientId

Retrieves the Client Metadata of a Login Configuration by OAuth 2.0 Client ID.

Parameters

clientId string Required
OAuth 2.0 Client ID generated by the Login Configuration.

Example

import { ConfigurationApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new ConfigurationApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const { data } = await api.getClientMetadataByClientId('<CLIENT_ID>')

getLoginConfigurationsById

Retrieves the Login Configuration details by ID.

Parameters

configurationId string Required
ID of the Login Configuration to retrieve.

Example

import { ConfigurationApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new ConfigurationApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const { data } = await api.getLoginConfigurationsById('<CONFIG_ID>')

listLoginConfigurations

Lists all Login Configurations in the project.

Parameters

limit number Optional
Maximum number of records to return.
exclusiveStartKey string Optional
Base64url-encoded key of the first item that this operation will evaluate (it is not returned). Use the value returned in the previous operation to paginate.

Example

import { ConfigurationApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new ConfigurationApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const { data } = await api.listLoginConfigurations()

updateLoginConfigurationsById

Updates an existing Login Configuration by ID.

Parameters

configurationId string Required
ID of the Login Configuration to update.
Updated configuration details.

Example

import { ConfigurationApi, Configuration, UpdateLoginConfigurationInput } from '@affinidi-tdk/login-configuration-client'

const api = new ConfigurationApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const request: UpdateLoginConfigurationInput = {
  name: 'My Updated Login Config',
  redirectUris: ['http://localhost:3001/api/auth/callback'],
}

const { data } = await api.updateLoginConfigurationsById('<CONFIG_ID>', request)

Group API

Manages user groups for the project.

addUserToGroup

Adds a user to a user group.

Parameters

groupName string Required
Name of the group to add the user to.
request AddUserToGroupInput Required
User ID to add to the group.

Example

import { GroupApi, Configuration, AddUserToGroupInput } from '@affinidi-tdk/login-configuration-client'

const api = new GroupApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const request: AddUserToGroupInput = {
  userId: 'did:key:890890890890890',
}

const { data } = await api.addUserToGroup('<GROUP_NAME>', request)

createGroup

Creates a user group.

Parameters

request CreateGroupInput Required
Name of the user group to create.

Example

import { GroupApi, Configuration, CreateGroupInput } from '@affinidi-tdk/login-configuration-client'

const api = new GroupApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const request: CreateGroupInput = {
  groupName: '<GROUP_NAME>',
}

const { data } = await api.createGroup(request)

deleteGroup

Deletes a group by name.

Parameters

groupName string Required
Name of the group to delete.

Example

import { GroupApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new GroupApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

await api.deleteGroup('<GROUP_NAME>')

getGroupById

Retrieves a group by name.

Parameters

groupName string Required
Name of the group to retrieve.

Example

import { GroupApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new GroupApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const { data } = await api.getGroupById('<GROUP_NAME>')

listGroupUserMappings

Lists all users in a group.

Parameters

groupName string Required
Name of the group to list users for.
limit number Optional
Maximum number of records to return.
exclusiveStartKey string Optional
Base64url-encoded key of the first item that this operation will evaluate (it is not returned). Use the value returned in the previous operation to paginate.
sortOrder string Optional
Sort order for the response. Defaults to descending ("desc").

Example

import { GroupApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new GroupApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const { data } = await api.listGroupUserMappings('<GROUP_NAME>')

listGroups

Lists all groups in the project.

No parameters required.

Example

import { GroupApi, Configuration } from '@affinidi-tdk/login-configuration-client'

const api = new GroupApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const { data } = await api.listGroups()

removeUserFromGroup

Removes a user from a group.

Parameters

groupName string Required
Name of the group to remove the user from.
request RemoveUserFromGroupInput Required
User ID to remove from the group.

Example

import { GroupApi, Configuration, RemoveUserFromGroupInput } from '@affinidi-tdk/login-configuration-client'

const api = new GroupApi(
  new Configuration({ apiKey: authProvider.fetchProjectScopedToken.bind(authProvider) })
)

const request: RemoveUserFromGroupInput = {
  userId: 'did:key:890890890890890',
}

const { data } = await api.removeUserFromGroup('<GROUP_NAME>', request)

DenyList API

Used to block groups and users to deny access on services like Affinidi Login when users are authenticating.

blockGroups

Block users by group.

Parameters

GroupNamesInput [Object]

List of groups to block. See more here.

Example

import { DenyListApi, Configuration, GroupNamesInput } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new DenyListApi(authConfiguration)

const request: GroupNamesInput = [
    "<GROUP_1_NAME>",
    "<GROUP_2_NAME>"
]

const { data } = await api.blockGroups(request)

blockUsers

Block by User ID (DID).

Parameters

BlockedUsersInput [Object]

List of User IDs (DIDs) to block. See more here.

Example

import { DenyListApi, Configuration, BlockedUsersInput } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new DenyListApi(authConfiguration)

const request: BlockedUsersInput = [
    "<USER_1_DID>",
    "<USER_2_DID>"
]

const { data } = await api.blockUsers(request)

listBlockedGroups

Get list of blocked groups.

Parameters

pageToken [String]

Used for pagination.

Example

import { DenyListApi, Configuration } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new DenyListApi(authConfiguration)

const { data } = await api.listBlockedGroups()

listBlockedUsers

Get list of blocked users.

Parameters

pageToken [String]

Used for pagination.

Example

import { DenyListApi, Configuration } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new DenyListApi(authConfiguration)

const { data } = await api.listBlockedUsers()

unblockGroups

Unblock users by group.

Parameters

GroupNamesInput [Object]

List of groups to block. See more here.

Example

import { DenyListApi, Configuration, GroupNamesInput } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new DenyListApi(authConfiguration)

const request: GroupNamesInput = [
    "<GROUP_1_NAME>",
    "<GROUP_2_NAME>"
]

const { data } = await api.unblockGroups(request)

unblockUsers

Unblock by User ID (DID).

Parameters

BlockedUsersInput [Object]

List of User IDs (DIDs) to block. See more here.

Example

import { DenyListApi, Configuration, BlockedUsersInput } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new DenyListApi(authConfiguration)

const request: BlockedUsersInput = [
    "<USER_1_DID>",
    "<USER_2_DID>"
]

const { data } = await api.unblockUsers(request)

AllowList API

Used to allow groups and users to grant access on services like Affinidi Login when users are authenticating.

allowGroups

Allows users by group.

Parameters

GroupNamesInput [Object]

List of groups to allow. See more here.

Example

import { AllowListApi, Configuration, GroupNamesInput } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new AllowListApi(authConfiguration)

const request: GroupNamesInput = [
    "<GROUP_NAME_1>",
    "<GROUP_NAME_2>"
]

const { data } = await api.allowGroups(request)

disallowGroups

Disallow access to users by group.

Parameters

GroupNamesInput [Object]

List of groups to disallow. See more here.

Example

import { AllowListApi, Configuration, GroupNamesInput } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new AllowListApi(authConfiguration)

const request: GroupNamesInput = [
    "<GROUP_NAME_1>",
    "<GROUP_NAME_2>"
]

const { data } = await api.disallowGroups(request)

listAllowedGroups

Get list of allowed groups.

Parameters

pageToken [String]

Used for pagination.

Example

import { AllowListApi, Configuration } from '@affinidi-tdk/login-configuration-client'

// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new AllowListApi(authConfiguration)

const { data } = await api.listAllowedGroups()