Logging in
To log in on the iCure platform, you will need a username and a password
Make sure to have set up your environment first.
import {Api } from '@icure/api'
import { crypto } from '@icure/api/node-compat.js' //Only needed on node
const host = 'https://kraken.svc.icure.cloud/rest/v1';
const {
userApi,
healthcarePartyApi,
cryptoApi
} = Api(host, 'user', 'password', crypto)
Once logged in, you can check the user details.
const loggedUser = await userApi.getCurrentUser()If you wish to decrypt medical data, you will have to import your private key
import { hex2ua } from "@icure/api";
const loggedUser = await userApi.getCurrentUser()
await cryptoApi.loadKeyPairsAsTextInBrowserLocalStorage(
loggedUser.healthcarePartyId,
hex2ua('308204bd02...0f3ca0975e78')
)A user is only part of the story, it holds the information needed to log in but the personal data and the cryptographic keys are stored either in a patient or a healthcare party document. To create a new user, you will have to create the linked healthcare party as well
import { ua2hex, HealthcareParty, User } from '@icure/api'
const { publicKey, privateKey } = await cryptoApi.RSA.generateKeyPair()
const exportedKey = ua2hex(await cryptoApi.RSA.exportKey(privateKey, 'pkcs8'))
//The private key will have to be stored in a secured place and used later
const newHcp = await healthcarePartyApi.createHealthcareParty(
new HealthcareParty({
id: cryptoApi.randomUuid(),
firstName: 'John',
lastName: 'Wayne',
publicKey: await cryptoApi.RSA.exportKey(publicKey, 'spki')
})
)
const newUser = await userApi.createUser(new User({
id: cryptoApi.randomUuid(),
healthcarePartyId: newHcp.id,
login: 'john',
passwordHash: 'passwordInClear'
}))Last updated
Was this helpful?