Trouble when running iD locally (cannot authenticate to OSM)

I downloaded iD on my Mac, but cannot seem to be able to login to OSM to save my changes.

$ git clone https://github.com/openstreetmap/iD.git
Cloning into 'iD'...
remote: Enumerating objects: 157487, done.
remote: Counting objects: 100% (365/365), done.
remote: Compressing objects: 100% (144/144), done.
remote: Total 157487 (delta 244), reused 313 (delta 221), pack-reused 157122 (from 1)
Receiving objects: 100% (157487/157487), 455.06 MiB | 3.43 MiB/s, done.
Resolving deltas: 100% (118725/118725), done.

$  git checkout v2.30.2
HEAD is now at 3c263a3a7 v2.30.2

$ npm run all

> iD@2.30.2 all
> run-s clean build dist


> iD@2.30.2 clean
> shx rm -f dist/esbuild.json dist/*.js dist/*.map dist/*.css dist/img/*.svg


> iD@2.30.2 build
> run-s build:css build:data build:js


> iD@2.30.2 build:css
> node scripts/build_css.js


🏗   Building css...
👍  css built: 85.581ms


> iD@2.30.2 build:data
> shx mkdir -p dist/data && node scripts/build_data.js


🏗   Building data...
👍  data built: 1.134s


> iD@2.30.2 build:js
> node config/esbuild.config.mjs


> iD@2.30.2 dist
> run-p dist:**


> iD@2.30.2 dist:svg:fa
> svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/fa-sprite.svg svg/fontawesome/*.svg


> iD@2.30.2 dist:svg:iD
> svg-sprite --symbol --symbol-dest . --shape-id-generator "iD-%s" --symbol-sprite dist/img/iD-sprite.svg "svg/iD-sprite/**/*.svg"


> iD@2.30.2 dist:svg:maki
> svg-sprite --symbol --symbol-dest . --shape-id-generator "maki-%s" --symbol-sprite dist/img/maki-sprite.svg node_modules/@mapbox/maki/icons/*.svg


> iD@2.30.2 dist:svg:mapillary:signs
> svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-sprite.svg node_modules/@rapideditor/mapillary_sprite_source/package_signs/*.svg


> iD@2.30.2 dist:svg:temaki
> svg-sprite --symbol --symbol-dest . --shape-id-generator "temaki-%s" --symbol-sprite dist/img/temaki-sprite.svg node_modules/@rapideditor/temaki/icons/*.svg


> iD@2.30.2 dist:svg:roentgen
> svg-sprite --shape-id-generator "roentgen-%s" --shape-dim-width 16 --shape-dim-height 16 --symbol --symbol-dest . --symbol-sprite dist/img/roentgen-sprite.svg svg/roentgen/*.svg


> iD@2.30.2 dist:pannellum
> shx mkdir -p dist/pannellum && shx cp -R node_modules/pannellum/build/* dist/pannellum/


> iD@2.30.2 dist:min
> node config/esbuild.config.min.mjs


> iD@2.30.2 dist:svg:mapillary:objects
> svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/mapillary-object-sprite.svg node_modules/@rapideditor/mapillary_sprite_source/package_objects/*.svg


> iD@2.30.2 dist:mapillary
> shx mkdir -p dist/mapillary-js && shx cp -R node_modules/mapillary-js/dist/* dist/mapillary-js/


> iD@2.30.2 dist:svg:community
> svg-sprite --symbol --symbol-dest . --shape-id-generator "community-%s" --symbol-sprite dist/img/community-sprite.svg node_modules/osm-community-index/dist/img/*.svg


  dist/iD.min.js      2.0mb ⚠️
  dist/iD.min.js.map  7.7mb

⚡ Done in 670ms

$ npm start

> iD@2.30.2 start
> run-s start:watch


> iD@2.30.2 start:watch
> run-p build:js:watch start:server


> iD@2.30.2 start:server
> node scripts/server.js


> iD@2.30.2 build:js:watch
> node config/esbuild.config.mjs --watch

Listening on 8080
[watch] build finished, watching for changes...

Then if I want to login to OSM from my local instance, I’m getting after authentifying :

An error has occurred
The requested redirect uri is malformed or doesn’t match client redirect URI.

How could I fix that ?

Which setup instructions you have used? Can you link them?

(I hope that iD has setup instructions!)

I used : How to Get Started · openstreetmap/iD Wiki · GitHub

2 Likes

I have never tried such a thing, but is there a mismatch between the redirect URL the OSM servers are expecting and the one supplied?

Is your downloaded version separately registered for OAuth2?

I guess you need to register “your” app here:

with these Permissions

'Read user preferences'
'Modify user preferences'
'Modify the map'
'Read private GPS traces'
'Upload GPS traces'
'Modify notes'

and redirect uri http://localhost:8080/

and paste the client id and secret somewhere (maybe to config/id.js ?)

1 Like

thanks but it doesn’t seem possible ?
I only run ID on my laptop, I don’t need https …

localhost → 127.0.0.1 Allow HTTP to localhost on list of redirect URIs for OAuth2 applications · Issue #3613 · openstreetmap/openstreetmap-website · GitHub

2 Likes