Browse Source
Reviewed-on: https://gitea.anomalistdesign.com/trent_larson/kick-starter-for-time-pwa/pulls/4pull/6/head
anomalist
2 years ago
4 changed files with 100 additions and 2 deletions
@ -0,0 +1,60 @@ |
|||
import axios from "axios"; |
|||
import * as didJwt from "did-jwt"; |
|||
import { AppString } from "@/constants/app"; |
|||
import { db } from "../db"; |
|||
import { SERVICE_ID } from "../libs/veramo/setup"; |
|||
import { deriveAddress, newIdentifier } from "../libs/crypto"; |
|||
|
|||
export async function testServerRegisterUser() { |
|||
const testUser0Mnem = |
|||
"seminar accuse mystery assist delay law thing deal image undo guard initial shallow wrestle list fragile borrow velvet tomorrow awake explain test offer control"; |
|||
|
|||
const [addr, privateHex, publicHex, deriPath] = deriveAddress(testUser0Mnem); |
|||
|
|||
const identity0 = newIdentifier(addr, publicHex, privateHex, deriPath); |
|||
|
|||
await db.open(); |
|||
const accounts = await db.accounts.toArray(); |
|||
const thisIdentity = JSON.parse(accounts[0].identity); |
|||
|
|||
// Make a claim
|
|||
const vcClaim = { |
|||
"@context": "https://schema.org", |
|||
"@type": "RegisterAction", |
|||
agent: { did: identity0.did }, |
|||
object: SERVICE_ID, |
|||
participant: { did: thisIdentity.did }, |
|||
}; |
|||
// Make a payload for the claim
|
|||
const vcPayload = { |
|||
sub: "RegisterAction", |
|||
vc: { |
|||
"@context": ["https://www.w3.org/2018/credentials/v1"], |
|||
type: ["VerifiableCredential"], |
|||
credentialSubject: vcClaim, |
|||
}, |
|||
}; |
|||
// create a signature using private key of identity
|
|||
// eslint-disable-next-line
|
|||
const privateKeyHex: string = identity0.keys[0].privateKeyHex!; |
|||
const signer = await didJwt.SimpleSigner(privateKeyHex); |
|||
const alg = undefined; |
|||
// create a JWT for the request
|
|||
const vcJwt: string = await didJwt.createJWT(vcPayload, { |
|||
alg: alg, |
|||
issuer: identity0.did, |
|||
signer: signer, |
|||
}); |
|||
|
|||
// Make the xhr request payload
|
|||
|
|||
const payload = JSON.stringify({ jwtEncoded: vcJwt }); |
|||
const endorserApiServer = AppString.DEFAULT_ENDORSER_API_SERVER; |
|||
const url = endorserApiServer + "/api/claim"; |
|||
const headers = { |
|||
"Content-Type": "application/json", |
|||
}; |
|||
|
|||
const resp = await axios.post(url, payload, { headers }); |
|||
console.log("Result:", resp); |
|||
} |
Loading…
Reference in new issue