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