Fix bug
This commit is contained in:
		
							parent
							
								
									d9a5e06b5b
								
							
						
					
					
						commit
						142d59be85
					
				|  | @ -20,5 +20,10 @@ export class UserKeypair { | |||
| 	@Column('varchar', { | ||||
| 		length: 4096, | ||||
| 	}) | ||||
| 	public keyPem: string; | ||||
| 	public publicKey: string; | ||||
| 
 | ||||
| 	@Column('varchar', { | ||||
| 		length: 4096, | ||||
| 	}) | ||||
| 	public privateKey: string; | ||||
| } | ||||
|  |  | |||
|  | @ -1,4 +1,3 @@ | |||
| import { createPublicKey } from 'crypto'; | ||||
| import config from '../../../config'; | ||||
| import { ILocalUser } from '../../../models/entities/user'; | ||||
| import { UserKeypair } from '../../../models/entities/user-keypair'; | ||||
|  | @ -7,5 +6,5 @@ export default (user: ILocalUser, key: UserKeypair) => ({ | |||
| 	id: `${config.url}/users/${user.id}/publickey`, | ||||
| 	type: 'Key', | ||||
| 	owner: `${config.url}/users/${user.id}`, | ||||
| 	publicKeyPem: createPublicKey(key.keyPem) | ||||
| 	publicKeyPem: key.publicKey | ||||
| }); | ||||
|  |  | |||
|  | @ -67,7 +67,7 @@ export default async (user: ILocalUser, url: string, object: any) => { | |||
| 
 | ||||
| 		sign(req, { | ||||
| 			authorizationHeaderName: 'Signature', | ||||
| 			key: keypair.keyPem, | ||||
| 			key: keypair.privateKey, | ||||
| 			keyId: `${config.url}/users/${user.id}/publickey`, | ||||
| 			headers: ['date', 'host', 'digest'] | ||||
| 		}); | ||||
|  |  | |||
|  | @ -10,6 +10,7 @@ import { genId } from '../../../misc/gen-id'; | |||
| import { usersChart } from '../../../services/chart'; | ||||
| import { UserServiceLinking } from '../../../models/entities/user-service-linking'; | ||||
| import { User } from '../../../models/entities/user'; | ||||
| import { UserKeypair } from '../../../models/entities/user-keypair'; | ||||
| 
 | ||||
| export default async (ctx: Koa.BaseContext) => { | ||||
| 	const body = ctx.request.body as any; | ||||
|  | @ -80,6 +81,23 @@ export default async (ctx: Koa.BaseContext) => { | |||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	const keyPair = await new Promise<string[]>((s, j) => | ||||
| 		generateKeyPair('rsa', { | ||||
| 			modulusLength: 4096, | ||||
| 			publicKeyEncoding: { | ||||
| 				type: 'pkcs1', | ||||
| 				format: 'pem' | ||||
| 			}, | ||||
| 			privateKeyEncoding: { | ||||
| 				type: 'pkcs1', | ||||
| 				format: 'pem', | ||||
| 				cipher: undefined, | ||||
| 				passphrase: undefined | ||||
| 			} | ||||
| 		}, (e, publicKey, privateKey) => | ||||
| 			e ? j(e) : s([publicKey, privateKey]) | ||||
| 		)); | ||||
| 
 | ||||
| 	const account = await Users.save({ | ||||
| 		id: genId(), | ||||
| 		createdAt: new Date(), | ||||
|  | @ -95,21 +113,10 @@ export default async (ctx: Koa.BaseContext) => { | |||
| 
 | ||||
| 	await UserKeypairs.save({ | ||||
| 		id: genId(), | ||||
| 		keyPem: await new Promise<string>((s, j) => generateKeyPair('rsa', { | ||||
| 			modulusLength: 4096, | ||||
| 			publicKeyEncoding: { | ||||
| 				type: 'pkcs1', | ||||
| 				format: 'pem' | ||||
| 			}, | ||||
| 			privateKeyEncoding: { | ||||
| 				type: 'pkcs1', | ||||
| 				format: 'pem', | ||||
| 				cipher: undefined, | ||||
| 				passphrase: undefined | ||||
| 			} | ||||
| 		}, (e, _, x) => e ? j(e) : s(x))), | ||||
| 		publicKey: keyPair[0], | ||||
| 		privateKey: keyPair[1], | ||||
| 		userId: account.id | ||||
| 	}); | ||||
| 	} as UserKeypair); | ||||
| 
 | ||||
| 	await UserServiceLinkings.save({ | ||||
| 		id: genId(), | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue