Prompt to add redirect URI in setup
This commit is contained in:
		
							parent
							
								
									cf756cb0af
								
							
						
					
					
						commit
						5dbd79cf39
					
				
					 1 changed files with 27 additions and 2 deletions
				
			
		|  | @ -148,10 +148,15 @@ async function validateHomeserverOrigin(serverUrlPrompt, url) { | |||
| 				} | ||||
| 			} | ||||
| 		}) | ||||
| 		bridgeOriginResponse.bridge_origin = bridgeOriginResponse.bridge_origin.replace(/\/+$/, "") // remove trailing slash
 | ||||
| 
 | ||||
| 		await server.close() | ||||
| 
 | ||||
| 		console.log("What is your Discord bot token?") | ||||
| 		/** @type {SnowTransfer} */ // @ts-ignore
 | ||||
| 		let snow = null | ||||
| 		/** @type {{id: string, redirect_uris: string[]}} */ // @ts-ignore
 | ||||
| 		let client = null | ||||
| 		/** @type {{discord_token: string}} */ | ||||
| 		const discordTokenResponse = await prompt({ | ||||
| 			type: "input", | ||||
|  | @ -160,8 +165,8 @@ async function validateHomeserverOrigin(serverUrlPrompt, url) { | |||
| 			validate: async token => { | ||||
| 				process.stdout.write(magenta(" checking, please wait...")) | ||||
| 				try { | ||||
| 					const snow = new SnowTransfer(token) | ||||
| 					await snow.user.getSelf() | ||||
| 					snow = new SnowTransfer(token) | ||||
| 					client = await snow.requestHandler.request(`/applications/@me`, {}, "get") | ||||
| 					return true | ||||
| 				} catch (e) { | ||||
| 					return e.message | ||||
|  | @ -170,6 +175,7 @@ async function validateHomeserverOrigin(serverUrlPrompt, url) { | |||
| 		}) | ||||
| 
 | ||||
| 		console.log("What is your Discord client secret?") | ||||
| 		console.log(`You can find it on the application page: https://discord.com/developers/applications/${client.id}/oauth2`) | ||||
| 		/** @type {{discord_client_secret: string}} */ | ||||
| 		const clientSecretResponse = await prompt({ | ||||
| 			type: "input", | ||||
|  | @ -177,6 +183,25 @@ async function validateHomeserverOrigin(serverUrlPrompt, url) { | |||
| 			message: "Client secret" | ||||
| 		}) | ||||
| 
 | ||||
| 		const expectedUri = `${bridgeOriginResponse.bridge_origin}/oauth` | ||||
| 		if (!client.redirect_uris.includes(expectedUri)) { | ||||
| 			console.log(`On the same application page, go to the Redirects section, and add this URI: ${cyan(expectedUri)}`) | ||||
| 			await prompt({ | ||||
| 				type: "invisible", | ||||
| 				name: "redirect_uri", | ||||
| 				message: "Press Enter when you've added it", | ||||
| 				validate: async token => { | ||||
| 					process.stdout.write(magenta("checking, please wait...")) | ||||
| 					client = await snow.requestHandler.request(`/applications/@me`, {}, "get") | ||||
| 					if (client.redirect_uris.includes(expectedUri)) { | ||||
| 						return true | ||||
| 					} else { | ||||
| 						return "Redirect URI has not been added yet" | ||||
| 					} | ||||
| 				} | ||||
| 			}) | ||||
| 		} | ||||
| 
 | ||||
| 		const template = getTemplateRegistration(serverNameResponse.server_name) | ||||
| 		reg = { | ||||
| 			...template, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue