tested working pair code
This commit is contained in:
		
							parent
							
								
									f828839b4d
								
							
						
					
					
						commit
						acf8522195
					
				| @ -149,14 +149,14 @@ DB.domains._add = function (acc, opts) { | |||||||
|     var err; |     var err; | ||||||
|     //var acc = DB._byId[aid];
 |     //var acc = DB._byId[aid];
 | ||||||
|     var domain = { |     var domain = { | ||||||
|       name: opts.domain || opts.name |       name: (opts.domain || opts.name) | ||||||
|     , hostname: opts.hostname |     , hostname: opts.hostname | ||||||
|     , os: opts.os |     , os: opts.os | ||||||
|     , createdAt: new Date().toISOString() |     , createdAt: new Date().toISOString() | ||||||
|     , wildcard: opts.wildcard |     , wildcard: opts.wildcard | ||||||
|     }; |     }; | ||||||
|     var pdomain; |     var pdomain; | ||||||
|     var parts = opts.name.split('.').map(function (el, i, arr) { |     var parts = (opts.domain || domain.name).split('.').map(function (el, i, arr) { | ||||||
|       return arr.slice(i).join('.'); |       return arr.slice(i).join('.'); | ||||||
|     }).reverse(); |     }).reverse(); | ||||||
|     parts.shift(); |     parts.shift(); | ||||||
| @ -167,18 +167,18 @@ DB.domains._add = function (acc, opts) { | |||||||
|         return true; |         return true; | ||||||
|       } |       } | ||||||
|     })) { |     })) { | ||||||
|       err = new Error("'" + name + "' exists as '" + pdomain + "' and therefore requires an admin to review and approve"); |       err = new Error("'" + domain.name + "' exists as '" + pdomain + "' and therefore requires an admin to review and approve"); | ||||||
|       err.code = "E_REQ_ADMIN"; |       err.code = "E_REQ_ADMIN"; | ||||||
|       throw err; |       throw err; | ||||||
|     } |     } | ||||||
|     if (DB._byDomain[name]) { |     if (DB._byDomain[domain.name]) { | ||||||
|       if (acc !== DB._byDomain[name].account) { |       if (acc !== DB._byDomain[domain.name].account) { | ||||||
|         throw new Error("domain '" + name + "' exists"); |         throw new Error("domain '" + domain.name + "' exists"); | ||||||
|       } |       } | ||||||
|       // happily ignore non-change
 |       // happily ignore non-change
 | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|     DB._byDomain[name] = { |     DB._byDomain[domain.name] = { | ||||||
|       account: acc |       account: acc | ||||||
|     , domain: domain |     , domain: domain | ||||||
|     }; |     }; | ||||||
| @ -754,9 +754,9 @@ module.exports.pairPin = function (opts) { | |||||||
|           acc = { email: true, domains: [], ports: [], nodes: [ emailNode ] }; |           acc = { email: true, domains: [], ports: [], nodes: [ emailNode ] }; | ||||||
|         } |         } | ||||||
|         return PromiseA.all([ |         return PromiseA.all([ | ||||||
|           DB.domains._add(acc, { domain: opts.domain, wildcard: true, hostname: auth.authnData.hostname, |           DB.domains._add(acc, { domain: grantable.domain, wildcard: true, hostname: auth.authnData.hostname, | ||||||
|             os: auth.authnData.os_type, arch: auth.authnData.os_arch }) |             os: auth.authnData.os_type, arch: auth.authnData.os_arch }) | ||||||
|         , DB.ports._add(acc, { port: opts.port, hostname: auth.authnData.hostname, |         , DB.ports._add(acc, { port: grantable.port, hostname: auth.authnData.hostname, | ||||||
|             os: auth.authnData.os_type, arch: auth.authnData.os_arch }) |             os: auth.authnData.os_type, arch: auth.authnData.os_arch }) | ||||||
|         ]).then(function () { |         ]).then(function () { | ||||||
|           var authzData = { |           var authzData = { | ||||||
| @ -1104,6 +1104,8 @@ function pairCode(req, res) { | |||||||
|   }).then(function (tokenData) { |   }).then(function (tokenData) { | ||||||
|     res.send(tokenData); |     res.send(tokenData); | ||||||
|   }, function (err) { |   }, function (err) { | ||||||
|  |     console.error('[error] pairCode:'); | ||||||
|  |     console.error(err); | ||||||
|     res.send({ error: { message: err.toString() } }); |     res.send({ error: { message: err.toString() } }); | ||||||
|     //res.send(tokenData || { error: { code: "E_TOKEN", message: "Invalid or expired magic link. (" + magic + ")" } });
 |     //res.send(tokenData || { error: { code: "E_TOKEN", message: "Invalid or expired magic link. (" + magic + ")" } });
 | ||||||
|   }); |   }); | ||||||
| @ -1127,30 +1129,24 @@ app.get(urls.pairState, function (req, res) { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function check(i) { |   function check(i) { | ||||||
|     console.log("[pair_state] check i =", i, req.params.id); |  | ||||||
|     if (auth._claimed) { |     if (auth._claimed) { | ||||||
|       console.log("[pair_state] complete", req.params.id); |  | ||||||
|       res.send({ |       res.send({ | ||||||
|         status: 'complete' |         status: 'complete' | ||||||
|       }); |       }); | ||||||
|     } else if (auth._offered) { |     } else if (auth._offered) { | ||||||
|       console.log("[pair_state] ready", req.params.id); |  | ||||||
|       res.send({ |       res.send({ | ||||||
|         status: 'ready', access_token: auth.authz |         status: 'ready', access_token: auth.authz | ||||||
|       , grant: { domains: auth.domains || [], ports: auth.ports || [] } |       , grant: { domains: auth.domains || [], ports: auth.ports || [] } | ||||||
|       }); |       }); | ||||||
|     } else if (false === auth._offered) { |     } else if (false === auth._offered) { | ||||||
|       console.log("[pair_state] failed", req.params.id); |  | ||||||
|       res.send({ status: 'failed', error: { message: "device pairing failed" } }); |       res.send({ status: 'failed', error: { message: "device pairing failed" } }); | ||||||
|     } else if (i >= 7) { |     } else if (i >= 7) { | ||||||
|       console.log("[pair_state] overdue i =", i, req.params.id); |  | ||||||
|       var stateUrl = 'https://' + req._state.config.apiDomain + urls.pairState.replace(/:id/g, auth.id); |       var stateUrl = 'https://' + req._state.config.apiDomain + urls.pairState.replace(/:id/g, auth.id); | ||||||
|       res.statusCode = 200; |       res.statusCode = 200; | ||||||
|       res.setHeader('Location',  stateUrl); |       res.setHeader('Location',  stateUrl); | ||||||
|       res.setHeader('Link', '<' + stateUrl + '>;rel="next"'); |       res.setHeader('Link', '<' + stateUrl + '>;rel="next"'); | ||||||
|       res.send({ status: 'pending' }); |       res.send({ status: 'pending' }); | ||||||
|     } else { |     } else { | ||||||
|       console.log("[pair_state] try again i =", i, req.params.id); |  | ||||||
|       setTimeout(check, 250, i + 1); |       setTimeout(check, 250, i + 1); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user