Skip to main content

External user search

While EVA boasts an extensive range of functionalities and services for storing and searching users, there may be some situations where you want to store your users outside of EVA - either momentarily or not. For this kind of situation, we offer the following integration flow.

To be able to make use of "Search in external database" (for example) action buttons in our front ends, you first have to link your external database to EVA. This requires configuration of several services and settings.

Services

The following services have been altered:

  • SearchUsers now contain the property Source, which can be set to External
  • CheckEmailAddressAvailability
  • CheckNicknameAvailability

Note that the two Check services have a hardcoded timeout of 500ms. For the SearchUsers call, the default limit is 5 seconds, but it can be configured otherwise with the setting ExternalUserProvider:Timeout.

  • GetApplicationConfiguration

This service exposes if external user search is available, by displaying it as a ExternalUserProvider:Enabled property.

This property will return true if the setting ExternalUserProvider:BaseUrl has been configured.

The different endpoints in practice

{"Nickname": "<value>"}

Settings

All of the above POST requests are made to your configured endpoints based on the following setting:

  • ExternalUserProvider:BaseUrl
  • ExternalUserProvider:Username
  • ExternalUserProvider:Password

Calling the endpoint

The BaseURL included in the settings here above needs to be exposed to EVA in the following way:

Exists

When checking for availability, EVA will need to be able to call the BaseURL endpoint to see if it (be it the email address or nickname) already exists. Hence, the endpoint needs to be exposed.

Example:

  • ExternalUserProvider:BaseUrl = customer-api.io
  • Endpoint: customer-api.io/exists

The same goes for when EVA needs to check the external database to find a user.

  • ExternalUserProvider:BaseUrl = customer-api.io
  • Endpoint: customer-api.io/search