Browse Source

New Project

kb/add-usage-guide
Matthew Aaron Raymer 2 years ago
parent
commit
f021fcdb1c
  1. 4
      src/constants/app.ts
  2. 11
      src/libs/crypto/index.ts
  3. 26
      src/views/NewEditProjectView.vue

4
src/constants/app.ts

@ -4,6 +4,6 @@
export enum AppString {
APP_NAME = "Kickstart for time",
VERSION = "0.1",
DEFAULT_ENDORSER_API_SERVER = 'https://endorser.ch:3000',
DEFAULT_ENDORSER_VIEW_SERVER = 'https://endorser.ch'
DEFAULT_ENDORSER_API_SERVER = 'https://test.endorser.ch:8000',
DEFAULT_ENDORSER_VIEW_SERVER = 'https://test.endorser.ch'
}

11
src/libs/crypto/index.ts

@ -100,3 +100,14 @@ export const accessToken = async (identifier: IIdentifier) => {
});
return jwt;
};
export const sign = async (privateKeyHex: string) => {
const input = privateKeyHex.startsWith("0x")
? privateKeyHex.substring(2)
: privateKeyHex;
const privateKeyBytes = u8a.fromString(input.toLowerCase(), "base16");
const signer = didJwt.ES256KSigner(privateKeyBytes, true);
return signer;
};

26
src/views/NewEditProjectView.vue

@ -74,7 +74,8 @@
import { Options, Vue } from "vue-class-component";
import { AppString } from "@/constants/app";
import { db } from "../db";
import { accessToken } from "@/libs/crypto";
import { accessToken, sign } from "@/libs/crypto";
import * as didJwt from 'did-jwt'
@Options({
components: {},
@ -95,20 +96,31 @@ export default class NewEditProjectView extends Vue {
const address = identity.did;
const vcClaim = {
"@context": "https://schema.org",
"@type": "Plan",
"@type": "PlanAction",
identifier: address,
name: this.projectName,
description: this.description,
};
const jwt = "";
const payload = JSON.stringify({ jwtEncoded: jwt});
const vcPayload = {
sub: "PlanAction",
vc: {
'@context': ['https://www.w3.org/2018/credentials/v1'],
type: ['VerifiableCredential'],
credentialSubject: vcClaim,
}
};
const signer = await sign(identity.keys[0].privateKeyHex);
const alg = undefined;
const vcJwt: string = await didJwt.createJWT(vcClaim,{ alg, issuer: identity, signer });
const payload = JSON.stringify({ jwtEncoded: vcJwt});
const endorserApiServer = AppString.DEFAULT_ENDORSER_API_SERVER;
const url = endorserApiServer + "/api/claim";
const token = await accessToken(identity)
const token = await accessToken(identity);
const headers = {
'Content-Type': 'application/json',
'Uport-Push-Token': token
}
'Authorization': "Bearer " + token
};
try {
let resp = await this.axios.post(url, payload, { headers });

Loading…
Cancel
Save