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?