Type Alias KlarnaIdentity

KlarnaIdentity: {
    button(id?: string): KlarnaIdentityButton;
    button(
        configuration: KlarnaIdentityButtonConfiguration,
    ): KlarnaIdentityButton;
    on(
        event: "signin",
        callback: (response: IdentitySignInResponse) => Promise<void>,
    ): void;
    on(event: "error", callback: (error: Error) => Promise<void>): void;
}

Main interface to the Identity API

const klarna = await window.Klarna.init({
clientId: "klarna_live_client_elZGI1B5dHBIRWcjZrNldnbEVj...",
locale: 'sv-SE'
});

This is the recommended and preferred method of integration


const siwkButton = klarna.Identity.button({
scope: "openid offline_access profile:name",
redirectUri: "http://localhost:3000/callback",
})

siwkButton.mount('#container');

siwkButton.on("ready", async () => {
// implement logic
});

siwkButton.on("click", async () => {
// implement logic
});

klarna.Identity.on("signin", async (signinResponse) => {
// implement logic
});

klarna.Identity.on("error", async (error) => {
// implement error handling logic
});
siwkButton.unmount():
<button id="merchants-custom-button">I am a custom button</button>
const siwkButton = klarna.Identity.button({
scope: "openid offline_access profile:name",
redirectUri: "http://localhost:3000/callback",
})

siwkButton.attach('#merchants-custom-button');

siwkButton.on("ready", async () => {
// implement logic
});

siwkButton.on("click", async () => {
// implement logic
});

klarna.Identity.on("signin", async (signinResponse) => {
// implement logic
});

klarna.Identity.on("error", async (error) => {
// implement error handling logic
});
siwkButton.detach():

If needed you can create multiple Identity Buttons

const siwkButton = klarna.Identity.button({
scope: "openid offline_access profile:name",
redirectUri: "http://localhost:3000/callback",
})

siwkButton.mount("#container-1")

// SECOND BUTTON RENDERED IN THE SAME PAGE
const siwkButton2 = klarna.Identity.button({
// Notice, for multiple buttons we need to provide an ID
id: 'secondIdentityButton',

scope: "openid offline_access profile:name",
redirectUri: "http://localhost:3000/callback",
})

siwkButton2.mount("#container-2")


// Cleanup
siwkButton.unmount()
siwkButton2.unmount()

Type declaration

  • button:function
  • on:function
    • Registers signin event handler.

      This event handler needs to be registered also on the redirect callback page to trigger handling redirect response.

      Parameters

      Returns void

    • Registers error event handler.

      Parameters

      • event: "error"
      • callback: (error: Error) => Promise<void>

      Returns void