本文整理匯總了TypeScript中jsontokens.TokenSigner類的典型用法代碼示例。如果您正苦於以下問題:TypeScript TokenSigner類的具體用法?TypeScript TokenSigner怎麽用?TypeScript TokenSigner使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了TokenSigner類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: signProfileToken
export function signProfileToken(profile: any,
privateKey: string,
subject?: any,
issuer?: any,
signingAlgorithm = 'ES256K',
issuedAt = new Date(),
expiresAt = nextYear()) {
if (signingAlgorithm !== 'ES256K') {
throw new Error('Signing algorithm not supported')
}
const publicKey = SECP256K1Client.derivePublicKey(privateKey)
if (!subject) {
subject = { publicKey }
}
if (!issuer) {
issuer = { publicKey }
}
const tokenSigner = new TokenSigner(signingAlgorithm, privateKey)
const payload = {
jti: makeUUID4(),
iat: issuedAt.toISOString(),
exp: expiresAt.toISOString(),
subject,
issuer,
claim: profile
}
return tokenSigner.sign(payload)
}
示例2: makeCoreSessionRequest
export function makeCoreSessionRequest(appDomain: string,
appMethods: Array<string>,
appPrivateKey: string,
blockchainID: string = null,
thisDevice: string = null) {
if (thisDevice === null) {
thisDevice = '.default'
}
const appPublicKey = SECP256K1Client.derivePublicKey(appPrivateKey)
const appPublicKeys = [{
public_key: appPublicKey,
device_id: thisDevice
}]
const authBody = {
version: 1,
blockchain_id: blockchainID,
app_private_key: appPrivateKey,
app_domain: appDomain,
methods: appMethods,
app_public_keys: appPublicKeys,
device_id: thisDevice
}
// make token
const tokenSigner = new TokenSigner('ES256k', appPrivateKey)
const token = tokenSigner.sign(authBody)
return token
}
示例3: makeAuthResponse
export function makeAuthResponse(privateKey: string,
profile: {} = {},
username: string = null,
metadata: AuthMetadata,
coreToken: string = null,
appPrivateKey: string = null,
expiresAt: number = nextMonth().getTime(),
transitPublicKey: string = null,
hubUrl: string = null,
blockstackAPIUrl: string = null,
associationToken: string = null): string {
/* Convert the private key to a public key to an issuer */
const publicKey = SECP256K1Client.derivePublicKey(privateKey)
const address = publicKeyToAddress(publicKey)
/* See if we should encrypt with the transit key */
let privateKeyPayload = appPrivateKey
let coreTokenPayload = coreToken
let additionalProperties = {}
if (appPrivateKey !== undefined && appPrivateKey !== null) {
Logger.info(`blockstack.js: generating v${VERSION} auth response`)
if (transitPublicKey !== undefined && transitPublicKey !== null) {
privateKeyPayload = encryptPrivateKey(transitPublicKey, appPrivateKey)
if (coreToken !== undefined && coreToken !== null) {
coreTokenPayload = encryptPrivateKey(transitPublicKey, coreToken)
}
}
additionalProperties = {
email: metadata.email ? metadata.email : null,
profile_url: metadata.profileUrl ? metadata.profileUrl : null,
hubUrl,
blockstackAPIUrl,
associationToken,
version: VERSION
}
} else {
Logger.info('blockstack.js: generating legacy auth response')
}
/* Create the payload */
const payload = Object.assign({}, {
jti: makeUUID4(),
iat: Math.floor(new Date().getTime() / 1000), // JWT times are in seconds
exp: Math.floor(expiresAt / 1000), // JWT times are in seconds
iss: makeDIDFromAddress(address),
private_key: privateKeyPayload,
public_keys: [publicKey],
profile,
username,
core_token: coreTokenPayload
}, additionalProperties)
/* Sign and return the token */
const tokenSigner = new TokenSigner('ES256k', privateKey)
return tokenSigner.sign(payload)
}
示例4: makeAuthRequest
export function makeAuthRequest(
transitPrivateKey?: string,
redirectURI?: string,
manifestURI?: string,
scopes: string[] = DEFAULT_SCOPE,
appDomain?: string,
expiresAt: number = nextMonth().getTime(),
extraParams: any = {}
): string {
if (!transitPrivateKey) {
transitPrivateKey = new UserSession().generateAndStoreTransitKey()
}
const getWindowOrigin = (paramName: string) => {
const origin = typeof window !== 'undefined' && window.location && window.location.origin
if (!origin) {
const errMsg = `\`makeAuthRequest\` called without the \`${paramName}\` param specified but`
+ ' the default value uses `window.location.origin` which is not available in this environment'
Logger.error(errMsg)
throw new Error(errMsg)
}
return origin
}
if (!redirectURI) {
redirectURI = `${getWindowOrigin('redirectURI')}/`
}
if (!manifestURI) {
manifestURI = `${getWindowOrigin('manifestURI')}/manifest.json`
}
if (!appDomain) {
appDomain = getWindowOrigin('appDomain')
}
/* Create the payload */
const payload = Object.assign({}, extraParams, {
jti: makeUUID4(),
iat: Math.floor(new Date().getTime() / 1000), // JWT times are in seconds
exp: Math.floor(expiresAt / 1000), // JWT times are in seconds
iss: null,
public_keys: [],
domain_name: appDomain,
manifest_uri: manifestURI,
redirect_uri: redirectURI,
version: VERSION,
do_not_include_profile: true,
supports_hub_url: true,
scopes
})
Logger.info(`blockstack.js: generating v${VERSION} auth request`)
/* Convert the private key to a public key to an issuer */
const publicKey = SECP256K1Client.derivePublicKey(transitPrivateKey)
payload.public_keys = [publicKey]
const address = publicKeyToAddress(publicKey)
payload.iss = makeDIDFromAddress(address)
/* Sign and return the token */
const tokenSigner = new TokenSigner('ES256k', transitPrivateKey)
const token = tokenSigner.sign(payload)
return token
}