Unable to login after upgrade



  • I'm unable to login to the forum, and receive a "Forbidden" message after upgrading to the latest 1.x.x from 1.0 or 1.1. The forum had been running stably for about a year and I decided to do some maintenance yesterday.

    Steps

    *Upgraded my distribution from 12.04 to 16.04

    • Changed the NodeJS repo
    • git checkout 1.x.x && git pull Upgraded from 1.1.0 I think.
    • rm -rf node_modules && npm install
    • sudo -u nodebb ./nodebb setup
    • sudo -u nodebb ./nodebb upgrade

    Versions

    • NodeBB v1.4.2
    • Ubuntu 16.04
    • Redis 3.2.6 Yes, I see that Mongo is now preferred

    Result

    sudo -u nodebb ./nodebb dev
    ...
    26/1 07:18:07 [17949] - info: NodeBB is now listening on: 0.0.0.0:4567
    26/1 07:18:18 [17949] - error: /login
     invalid csrf token
    

    Nginx File

    server {
        listen 80;
    
        server_name www.domain domain;
        return 301 https://domain$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        server_name www.domain;
        return 301 https://domain$request_uri;
        ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
    }
    
    upstream io_nodes {
        ip_hash;
        server 127.0.0.1:4567;
        server 127.0.0.1:4568;
    }
    
    server {
        listen 443 ssl http2;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:50m;
        #add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        ssl_stapling on; # Requires nginx >= 1.3.7
        ssl_stapling_verify on; # Requires nginx => 1.3.7
    
        ssl_session_timeout 1d;
        ssl_trusted_certificate /etc/letsencrypt/live/domain/chain.pem;
        resolver 8.8.4.4 8.8.8.8 valid=300s;
        resolver_timeout 5s;
        ssl_dhparam /etc/nginx/conf/dhparam.pem;
    
        server_name domain;
    
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    
        proxy_redirect off;
    
        # Socket.IO Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    
        gzip            on;
        gzip_min_length 1000;
        gzip_proxied    off;
        gzip_types      text/plain application/xml application/x-javascript text/css application/json;
    
        location @nodebb {
    	      proxy_pass http://io_nodes;
        }
    
        location ~ ^/(images|language|sounds|templates|uploads|vendor|src\/modules|nodebb\.min\.js|stylesheet\.css|admin\.css) {
            root /home/ubuntu/Node/public/;
            try_files $uri $uri/ @nodebb;
    	access_log off;
    	expires 1d;
        }
    
        location / {
            proxy_pass http://io_nodes;
        }
    }
    

  • Global Moderator

    What version of Node.JS?



  • @PitaJ

    Package: nodejs
    Version: 6.9.4-1nodesource1~xenial1
    Architecture: amd64
    Maintainer: Chris Lea <chl@nodesource.com>
    


  • Output of sudo npm install:

    sudo npm install
    npm WARN deprecated mongodb@2.2.16: Please upgrade to 2.2.19 or higher
    npm WARN deprecated node-uuid@1.4.7: use uuid module instead
    npm WARN deprecated wrench@1.5.9: wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years.
    npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
    npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
    npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
    nodebb@1.4.2 /home/ubuntu/NodeBB
    ├── async@1.5.2
    ├─┬ autoprefixer@6.7.0
    │ ├─┬ browserslist@1.6.0
    │ │ └── electron-to-chromium@1.2.1
    │ ├── caniuse-db@1.0.30000617
    │ ├── normalize-range@0.1.2
    │ ├── num2fraction@1.2.2
    │ └── postcss-value-parser@3.3.0
    ├── bcryptjs@2.3.0
    ├─┬ body-parser@1.16.0
    │ ├── bytes@2.4.0
    │ ├── content-type@1.0.2
    │ ├── debug@2.6.0
    │ ├── depd@1.1.0
    │ ├─┬ http-errors@1.5.1
    │ │ ├── inherits@2.0.3
    │ │ ├── setprototypeof@1.0.2
    │ │ └── statuses@1.3.1
    │ ├── iconv-lite@0.4.15
    │ ├─┬ on-finished@2.3.0
    │ │ └── ee-first@1.1.1
    │ ├── qs@6.2.1
    │ ├─┬ raw-body@2.2.0
    │ │ └── unpipe@1.0.0
    │ └─┬ type-is@1.6.14
    │   └── media-typer@0.3.0
    ├─┬ chart.js@2.4.0
    │ ├─┬ chartjs-color@2.0.0
    │ │ ├─┬ chartjs-color-string@0.4.0
    │ │ │ └── color-name@1.1.1
    │ │ └── color-convert@0.5.3
    │ └── moment@2.17.1
    ├── colors@1.1.2
    ├─┬ compression@1.6.2
    │ ├─┬ accepts@1.3.3
    │ │ └── negotiator@0.6.1
    │ ├── bytes@2.3.0
    │ ├─┬ compressible@2.0.9
    │ │ └── mime-db@1.26.0
    │ ├─┬ debug@2.2.0
    │ │ └── ms@0.7.1
    │ ├── on-headers@1.0.1
    │ └── vary@1.1.0
    ├── connect-ensure-login@0.1.1
    ├── connect-flash@0.1.1
    ├─┬ connect-mongo@1.3.2
    │ └── bluebird@3.4.7
    ├─┬ connect-multiparty@2.0.0
    │ ├─┬ multiparty@4.1.3
    │ │ └─┬ fd-slicer@1.0.1
    │ │   └── pend@1.2.0
    │ └── qs@4.0.0
    ├── connect-redis@3.1.0
    ├─┬ cookie-parser@1.4.3
    │ ├── cookie@0.3.1
    │ └── cookie-signature@1.0.6
    ├─┬ coveralls@2.11.15
    │ ├─┬ js-yaml@3.6.1
    │ │ └── argparse@1.0.9
    │ ├── lcov-parse@0.0.10
    │ ├── log-driver@1.2.5
    │ └─┬ request@2.75.0
    │   ├─┬ bl@1.1.2
    │   │ └── readable-stream@2.0.6
    │   ├── form-data@2.0.0
    │   └── node-uuid@1.4.7
    ├─┬ cron@1.2.1
    │ └── moment-timezone@0.5.11
    ├─┬ csurf@1.9.0
    │ └─┬ csrf@3.0.4
    │   ├── base64-url@1.3.3
    │   ├── rndm@1.2.0
    │   └── tsscmp@1.0.5
    ├── daemon@1.1.0
    ├─┬ eslint@3.14.1
    │ ├─┬ babel-code-frame@6.22.0
    │ │ └── js-tokens@3.0.0
    │ ├─┬ chalk@1.1.3
    │ │ ├── ansi-styles@2.2.1
    │ │ ├── has-ansi@2.0.0
    │ │ ├── strip-ansi@3.0.1
    │ │ └── supports-color@2.0.0
    │ ├─┬ concat-stream@1.6.0
    │ │ ├── readable-stream@2.2.2
    │ │ └── typedarray@0.0.6
    │ ├─┬ doctrine@1.5.0
    │ │ └── isarray@1.0.0
    │ ├─┬ escope@3.6.0
    │ │ ├── es6-weak-map@2.0.1
    │ │ └─┬ esrecurse@4.1.0
    │ │   └── estraverse@4.1.1
    │ ├─┬ espree@3.3.2
    │ │ ├── acorn@4.0.4
    │ │ └─┬ acorn-jsx@3.0.1
    │ │   └── acorn@3.3.0
    │ ├── estraverse@4.2.0
    │ ├── esutils@2.0.2
    │ ├─┬ file-entry-cache@2.0.0
    │ │ └─┬ flat-cache@1.2.2
    │ │   ├── circular-json@0.3.1
    │ │   ├─┬ del@2.2.2
    │ │   │ ├─┬ globby@5.0.0
    │ │   │ │ ├─┬ array-union@1.0.2
    │ │   │ │ │ └── array-uniq@1.0.3
    │ │   │ │ └── arrify@1.0.1
    │ │   │ ├── is-path-cwd@1.0.0
    │ │   │ ├─┬ is-path-in-cwd@1.0.0
    │ │   │ │ └── is-path-inside@1.0.0
    │ │   │ └── pify@2.3.0
    │ │   └── write@0.2.1
    │ ├─┬ glob@7.1.1
    │ │ ├── fs.realpath@1.0.0
    │ │ ├── inflight@1.0.6
    │ │ └── path-is-absolute@1.0.1
    │ ├── globals@9.14.0
    │ ├── ignore@3.2.0
    │ ├── imurmurhash@0.1.4
    │ ├─┬ inquirer@0.12.0
    │ │ ├── ansi-escapes@1.4.0
    │ │ ├── ansi-regex@2.1.1
    │ │ ├─┬ cli-cursor@1.0.2
    │ │ │ └─┬ restore-cursor@1.0.1
    │ │ │   ├── exit-hook@1.1.1
    │ │ │   └── onetime@1.1.0
    │ │ ├── cli-width@2.1.0
    │ │ ├── figures@1.7.0
    │ │ ├─┬ readline2@1.0.1
    │ │ │ ├── code-point-at@1.1.0
    │ │ │ ├─┬ is-fullwidth-code-point@1.0.0
    │ │ │ │ └── number-is-nan@1.0.1
    │ │ │ └── mute-stream@0.0.5
    │ │ ├── run-async@0.1.0
    │ │ ├── rx-lite@3.1.2
    │ │ ├── string-width@1.0.2
    │ │ └── through@2.3.8
    │ ├─┬ is-my-json-valid@2.15.0
    │ │ ├── generate-function@2.0.0
    │ │ ├─┬ generate-object-property@1.2.0
    │ │ │ └── is-property@1.0.2
    │ │ └── jsonpointer@4.0.1
    │ ├─┬ is-resolvable@1.0.0
    │ │ └── tryit@1.0.3
    │ ├── js-yaml@3.7.0
    │ ├─┬ json-stable-stringify@1.0.1
    │ │ └── jsonify@0.0.0
    │ ├─┬ levn@0.3.0
    │ │ ├── prelude-ls@1.1.2
    │ │ └── type-check@0.3.2
    │ ├── lodash@4.17.4
    │ ├── natural-compare@1.4.0
    │ ├─┬ optionator@0.8.2
    │ │ ├── deep-is@0.1.3
    │ │ ├── fast-levenshtein@2.0.6
    │ │ └── wordwrap@1.0.0
    │ ├── path-is-inside@1.0.2
    │ ├── pluralize@1.2.1
    │ ├── progress@1.1.8
    │ ├─┬ require-uncached@1.0.3
    │ │ ├─┬ caller-path@0.1.0
    │ │ │ └── callsites@0.2.0
    │ │ └── resolve-from@1.0.1
    │ ├─┬ shelljs@0.7.6
    │ │ ├── interpret@1.0.1
    │ │ └── rechoir@0.6.2
    │ ├── strip-bom@3.0.0
    │ ├── strip-json-comments@2.0.1
    │ ├─┬ table@3.8.3
    │ │ ├─┬ ajv@4.11.2
    │ │ │ └── co@4.6.0
    │ │ ├── ajv-keywords@1.5.1
    │ │ ├── slice-ansi@0.0.4
    │ │ └─┬ string-width@2.0.0
    │ │   └── is-fullwidth-code-point@2.0.0
    │ ├── text-table@0.2.0
    │ └─┬ user-home@2.0.0
    │   └── os-homedir@1.0.1
    ├─┬ eslint-config-airbnb@12.0.0
    │ └── eslint-config-airbnb-base@8.0.0
    ├─┬ eslint-plugin-import@1.16.0
    │ ├── builtin-modules@1.1.1
    │ ├── contains-path@0.1.0
    │ ├── doctrine@1.3.0
    │ ├─┬ es6-map@0.1.4
    │ │ ├── d@0.1.1
    │ │ ├── es5-ext@0.10.12
    │ │ ├── es6-iterator@2.0.0
    │ │ ├── es6-symbol@3.1.0
    │ │ └── event-emitter@0.3.4
    │ ├── es6-set@0.1.4
    │ ├─┬ eslint-import-resolver-node@0.2.3
    │ │ └── resolve@1.2.0
    │ ├─┬ has@1.0.1
    │ │ └── function-bind@1.1.0
    │ ├── lodash.cond@4.5.2
    │ ├── lodash.endswith@4.2.1
    │ ├── lodash.find@4.6.0
    │ ├── lodash.findindex@4.6.0
    │ ├─┬ minimatch@3.0.3
    │ │ └─┬ brace-expansion@1.1.6
    │ │   ├── balanced-match@0.4.2
    │ │   └── concat-map@0.0.1
    │ ├── object-assign@4.1.0
    │ ├─┬ pkg-dir@1.0.0
    │ │ └─┬ find-up@1.1.2
    │ │   └── path-exists@2.1.0
    │ └── pkg-up@1.0.0
    ├─┬ eslint-plugin-jsx-a11y@2.2.3
    │ ├── damerau-levenshtein@1.0.3
    │ └── jsx-ast-utils@1.3.5
    ├─┬ eslint-plugin-react@6.9.0
    │ └─┬ array.prototype.find@2.0.3
    │   ├─┬ define-properties@1.1.2
    │   │ ├── foreach@2.0.5
    │   │ └── object-keys@1.0.11
    │   └─┬ es-abstract@1.7.0
    │     ├─┬ es-to-primitive@1.1.1
    │     │ ├── is-date-object@1.0.1
    │     │ └── is-symbol@1.0.1
    │     ├── is-callable@1.1.3
    │     └── is-regex@1.0.3
    ├─┬ express@4.14.0
    │ ├── array-flatten@1.1.1
    │ ├── content-disposition@0.5.1
    │ ├─┬ debug@2.2.0
    │ │ └── ms@0.7.1
    │ ├── encodeurl@1.0.1
    │ ├── escape-html@1.0.3
    │ ├── etag@1.7.0
    │ ├─┬ finalhandler@0.5.0
    │ │ └─┬ debug@2.2.0
    │ │   └── ms@0.7.1
    │ ├── fresh@0.3.0
    │ ├── merge-descriptors@1.0.1
    │ ├── methods@1.1.2
    │ ├── parseurl@1.3.1
    │ ├── path-to-regexp@0.1.7
    │ ├─┬ proxy-addr@1.1.3
    │ │ ├── forwarded@0.1.0
    │ │ └── ipaddr.js@1.2.0
    │ ├── qs@6.2.0
    │ ├── range-parser@1.2.0
    │ ├─┬ send@0.14.1
    │ │ ├── debug@2.2.0
    │ │ ├── destroy@1.0.4
    │ │ └── ms@0.7.1
    │ ├─┬ serve-static@1.11.2
    │ │ └─┬ send@0.14.2
    │ │   └─┬ debug@2.2.0
    │ │     └── ms@0.7.1
    │ └── utils-merge@1.0.0
    ├─┬ express-session@1.15.0
    │ ├── crc@3.4.4
    │ └─┬ uid-safe@2.1.3
    │   └── random-bytes@1.0.0
    ├─┬ express-useragent@1.0.4
    │ └─┬ nodeunit@0.10.2
    │   └─┬ tap@7.1.2
    │     ├── clean-yaml-object@0.1.0
    │     ├── color-support@1.1.2
    │     ├── deeper@2.1.0
    │     ├─┬ foreground-child@1.5.6
    │     │ └── cross-spawn@4.0.2
    │     ├─┬ nyc@7.1.0
    │     │ ├── arrify@1.0.1
    │     │ ├─┬ caching-transform@1.0.1
    │     │ │ └─┬ write-file-atomic@1.1.4
    │     │ │   ├── graceful-fs@4.1.4
    │     │ │   ├── imurmurhash@0.1.4
    │     │ │   └── slide@1.1.6
    │     │ ├── convert-source-map@1.3.0
    │     │ ├─┬ default-require-extensions@1.0.0
    │     │ │ └─┬ strip-bom@2.0.0
    │     │ │   └── is-utf8@0.2.1
    │     │ ├─┬ find-cache-dir@0.1.1
    │     │ │ ├── commondir@1.0.1
    │     │ │ └── pkg-dir@1.0.0
    │     │ ├─┬ find-up@1.1.2
    │     │ │ ├── path-exists@2.1.0
    │     │ │ └─┬ pinkie-promise@2.0.1
    │     │ │   └── pinkie@2.0.4
    │     │ ├─┬ foreground-child@1.5.3
    │     │ │ └─┬ cross-spawn@4.0.0
    │     │ │   └─┬ lru-cache@4.0.1
    │     │ │     ├── pseudomap@1.0.2
    │     │ │     └── yallist@2.0.0
    │     │ ├─┬ glob@7.0.5
    │     │ │ ├── fs.realpath@1.0.0
    │     │ │ ├─┬ inflight@1.0.5
    │     │ │ │ └── wrappy@1.0.2
    │     │ │ ├── inherits@2.0.1
    │     │ │ ├─┬ minimatch@3.0.2
    │     │ │ │ └─┬ brace-expansion@1.1.6
    │     │ │ │   ├── balanced-match@0.4.2
    │     │ │ │   └── concat-map@0.0.1
    │     │ │ ├── once@1.3.3
    │     │ │ └── path-is-absolute@1.0.0
    │     │ ├── istanbul-lib-coverage@1.0.0-alpha.4
    │     │ ├─┬ istanbul-lib-hook@1.0.0-alpha.4
    │     │ │ └── append-transform@0.3.0
    │     │ ├─┬ istanbul-lib-instrument@1.1.0-alpha.4
    │     │ │ ├─┬ babel-generator@6.11.4
    │     │ │ │ ├── babel-messages@6.8.0
    │     │ │ │ ├─┬ babel-runtime@6.9.2
    │     │ │ │ │ ├── core-js@2.4.1
    │     │ │ │ │ └── regenerator-runtime@0.9.5
    │     │ │ │ ├─┬ detect-indent@3.0.1
    │     │ │ │ │ ├── get-stdin@4.0.1
    │     │ │ │ │ ├── minimist@1.2.0
    │     │ │ │ │ └─┬ repeating@1.1.3
    │     │ │ │ │   └── is-finite@1.0.1
    │     │ │ │ └── lodash@4.13.1
    │     │ │ ├── babel-template@6.9.0
    │     │ │ ├─┬ babel-traverse@6.11.4
    │     │ │ │ ├─┬ babel-code-frame@6.11.0
    │     │ │ │ │ ├─┬ chalk@1.1.3
    │     │ │ │ │ │ ├── ansi-styles@2.2.1
    │     │ │ │ │ │ ├── escape-string-regexp@1.0.5
    │     │ │ │ │ │ ├── has-ansi@2.0.0
    │     │ │ │ │ │ └── supports-color@2.0.0
    │     │ │ │ │ └── js-tokens@2.0.0
    │     │ │ │ ├─┬ debug@2.2.0
    │     │ │ │ │ └── ms@0.7.1
    │     │ │ │ ├── globals@8.18.0
    │     │ │ │ └─┬ invariant@2.2.1
    │     │ │ │   └─┬ loose-envify@1.2.0
    │     │ │ │     └── js-tokens@1.0.3
    │     │ │ ├─┬ babel-types@6.11.1
    │     │ │ │ ├── esutils@2.0.2
    │     │ │ │ └── to-fast-properties@1.0.2
    │     │ │ └── babylon@6.8.4
    │     │ ├─┬ istanbul-lib-report@1.0.0-alpha.3
    │     │ │ ├── async@1.5.2
    │     │ │ ├── path-parse@1.0.5
    │     │ │ └─┬ supports-color@3.1.2
    │     │ │   └── has-flag@1.0.0
    │     │ ├─┬ istanbul-lib-source-maps@1.0.0-alpha.10
    │     │ │ └── source-map@0.5.6
    │     │ ├─┬ istanbul-reports@1.0.0-alpha.8
    │     │ │ └─┬ handlebars@4.0.5
    │     │ │   ├─┬ optimist@0.6.1
    │     │ │   │ └── wordwrap@0.0.3
    │     │ │   ├─┬ source-map@0.4.4
    │     │ │   │ └── amdefine@1.0.0
    │     │ │   └─┬ uglify-js@2.7.0
    │     │ │     ├── async@0.2.10
    │     │ │     ├── uglify-to-browserify@1.0.2
    │     │ │     └─┬ yargs@3.10.0
    │     │ │       ├── camelcase@1.2.1
    │     │ │       ├─┬ cliui@2.1.0
    │     │ │       │ ├─┬ center-align@0.1.3
    │     │ │       │ │ ├─┬ align-text@0.1.4
    │     │ │       │ │ │ └── longest@1.0.1
    │     │ │       │ │ └── lazy-cache@1.0.4
    │     │ │       │ ├── right-align@0.1.3
    │     │ │       │ └── wordwrap@0.0.2
    │     │ │       └── window-size@0.1.0
    │     │ ├─┬ md5-hex@1.3.0
    │     │ │ └── md5-o-matic@0.1.1
    │     │ ├─┬ micromatch@2.3.11
    │     │ │ ├─┬ arr-diff@2.0.0
    │     │ │ │ └── arr-flatten@1.0.1
    │     │ │ ├── array-unique@0.2.1
    │     │ │ ├─┬ braces@1.8.5
    │     │ │ │ ├─┬ expand-range@1.8.2
    │     │ │ │ │ └─┬ fill-range@2.2.3
    │     │ │ │ │   ├── is-number@2.1.0
    │     │ │ │ │   ├─┬ isobject@2.1.0
    │     │ │ │ │   │ └── isarray@1.0.0
    │     │ │ │ │   ├── randomatic@1.1.5
    │     │ │ │ │   └── repeat-string@1.5.4
    │     │ │ │ ├── preserve@0.2.0
    │     │ │ │ └── repeat-element@1.1.2
    │     │ │ ├─┬ expand-brackets@0.1.5
    │     │ │ │ └── is-posix-bracket@0.1.1
    │     │ │ ├── extglob@0.3.2
    │     │ │ ├── filename-regex@2.0.0
    │     │ │ ├── is-extglob@1.0.0
    │     │ │ ├── is-glob@2.0.1
    │     │ │ ├─┬ kind-of@3.0.3
    │     │ │ │ └── is-buffer@1.1.3
    │     │ │ ├── normalize-path@2.0.1
    │     │ │ ├─┬ object.omit@2.0.0
    │     │ │ │ ├─┬ for-own@0.1.4
    │     │ │ │ │ └── for-in@0.1.5
    │     │ │ │ └── is-extendable@0.1.1
    │     │ │ ├─┬ parse-glob@3.0.4
    │     │ │ │ ├─┬ glob-base@0.3.0
    │     │ │ │ │ └── glob-parent@2.0.0
    │     │ │ │ └── is-dotfile@1.0.2
    │     │ │ └─┬ regex-cache@0.4.3
    │     │ │   ├── is-equal-shallow@0.1.3
    │     │ │   └── is-primitive@2.0.0
    │     │ ├─┬ mkdirp@0.5.1
    │     │ │ └── minimist@0.0.8
    │     │ ├── pkg-up@1.0.0
    │     │ ├── resolve-from@2.0.0
    │     │ ├── rimraf@2.5.4
    │     │ ├── signal-exit@3.0.0
    │     │ ├─┬ spawn-wrap@1.2.4
    │     │ │ ├── os-homedir@1.0.1
    │     │ │ ├── signal-exit@2.1.2
    │     │ │ └─┬ which@1.2.10
    │     │ │   └── isexe@1.1.2
    │     │ ├─┬ test-exclude@1.1.0
    │     │ │ ├─┬ lodash.assign@4.0.9
    │     │ │ │ ├── lodash.keys@4.0.7
    │     │ │ │ └── lodash.rest@4.0.3
    │     │ │ ├─┬ read-pkg-up@1.0.1
    │     │ │ │ └─┬ read-pkg@1.1.0
    │     │ │ │   ├─┬ load-json-file@1.1.0
    │     │ │ │   │ ├─┬ parse-json@2.2.0
    │     │ │ │   │ │ └─┬ error-ex@1.3.0
    │     │ │ │   │ │   └── is-arrayish@0.2.1
    │     │ │ │   │ └── pify@2.3.0
    │     │ │ │   ├─┬ normalize-package-data@2.3.5
    │     │ │ │   │ ├── hosted-git-info@2.1.5
    │     │ │ │   │ ├─┬ is-builtin-module@1.0.0
    │     │ │ │   │ │ └── builtin-modules@1.1.1
    │     │ │ │   │ ├── semver@5.3.0
    │     │ │ │   │ └─┬ validate-npm-package-license@3.0.1
    │     │ │ │   │   ├─┬ spdx-correct@1.0.2
    │     │ │ │   │   │ └── spdx-license-ids@1.2.1
    │     │ │ │   │   └─┬ spdx-expression-parse@1.0.2
    │     │ │ │   │     └── spdx-exceptions@1.0.5
    │     │ │ │   └── path-type@1.1.0
    │     │ │ └── require-main-filename@1.0.1
    │     │ ├─┬ yargs@4.8.1
    │     │ │ ├─┬ cliui@3.2.0
    │     │ │ │ └── wrap-ansi@2.0.0
    │     │ │ ├── decamelize@1.2.0
    │     │ │ ├── get-caller-file@1.0.1
    │     │ │ ├─┬ os-locale@1.4.0
    │     │ │ │ └─┬ lcid@1.0.0
    │     │ │ │   └── invert-kv@1.0.0
    │     │ │ ├── require-directory@2.1.1
    │     │ │ ├── set-blocking@2.0.0
    │     │ │ ├─┬ string-width@1.0.1
    │     │ │ │ ├─┬ code-point-at@1.0.0
    │     │ │ │ │ └── number-is-nan@1.0.0
    │     │ │ │ ├── is-fullwidth-code-point@1.0.0
    │     │ │ │ └─┬ strip-ansi@3.0.1
    │     │ │ │   └── ansi-regex@2.0.0
    │     │ │ ├── which-module@1.0.0
    │     │ │ ├── window-size@0.2.0
    │     │ │ └── y18n@3.2.1
    │     │ └─┬ yargs-parser@2.4.1
    │     │   └── camelcase@3.0.0
    │     ├── only-shallow@1.2.0
    │     ├── opener@1.4.2
    │     ├── signal-exit@3.0.2
    │     ├── stack-utils@0.4.0
    │     ├─┬ tap-mocha-reporter@2.0.1
    │     │ └── unicode-length@1.0.3
    │     ├─┬ tap-parser@2.2.3
    │     │ └── events-to-array@1.0.2
    │     └── tmatch@2.0.1
    ├─┬ grunt@0.4.5
    │ ├── async@0.1.22
    │ ├── coffee-script@1.3.3
    │ ├── colors@0.6.2
    │ ├── dateformat@1.0.2-1.2.3
    │ ├── eventemitter2@0.4.14
    │ ├── exit@0.1.2
    │ ├─┬ findup-sync@0.1.3
    │ │ ├─┬ glob@3.2.11
    │ │ │ └─┬ minimatch@0.3.0
    │ │ │   └── lru-cache@2.7.3
    │ │ └── lodash@2.4.2
    │ ├── getobject@0.1.0
    │ ├─┬ glob@3.1.21
    │ │ ├── graceful-fs@1.2.3
    │ │ └── inherits@1.0.2
    │ ├─┬ grunt-legacy-log@0.1.3
    │ │ ├── colors@0.6.2
    │ │ ├─┬ grunt-legacy-log-utils@0.1.1
    │ │ │ ├── colors@0.6.2
    │ │ │ ├── lodash@2.4.2
    │ │ │ └── underscore.string@2.3.3
    │ │ ├── lodash@2.4.2
    │ │ └── underscore.string@2.3.3
    │ ├─┬ grunt-legacy-util@0.2.0
    │ │ ├── async@0.1.22
    │ │ ├── lodash@0.9.2
    │ │ ├── underscore.string@2.2.1
    │ │ └── which@1.0.9
    │ ├── hooker@0.2.3
    │ ├── iconv-lite@0.2.11
    │ ├─┬ js-yaml@2.0.5
    │ │ ├─┬ argparse@0.1.16
    │ │ │ ├── underscore@1.7.0
    │ │ │ └── underscore.string@2.4.0
    │ │ └── esprima@1.0.4
    │ ├── lodash@0.9.2
    │ ├─┬ minimatch@0.2.14
    │ │ ├── lru-cache@2.7.3
    │ │ └── sigmund@1.0.1
    │ ├── nopt@1.0.10
    │ ├── rimraf@2.2.8
    │ ├── underscore.string@2.2.1
    │ └── which@1.0.9
    ├─┬ grunt-contrib-watch@1.0.0
    │ ├─┬ gaze@1.1.2
    │ │ └─┬ globule@1.1.0
    │ │   └── lodash@4.16.6
    │ ├── lodash@3.10.1
    │ └─┬ tiny-lr@0.2.1
    │   ├─┬ body-parser@1.14.2
    │   │ ├── bytes@2.2.0
    │   │ ├── http-errors@1.3.1
    │   │ ├── iconv-lite@0.4.13
    │   │ ├── qs@5.2.0
    │   │ └─┬ raw-body@2.1.7
    │   │   └── bytes@2.4.0
    │   ├─┬ debug@2.2.0
    │   │ └── ms@0.7.1
    │   ├─┬ faye-websocket@0.10.0
    │   │ └─┬ websocket-driver@0.6.5
    │   │   └── websocket-extensions@0.1.1
    │   ├── livereload-js@2.2.2
    │   └── qs@5.1.0
    ├─┬ html-to-text@2.1.3
    │ ├── he@1.1.1
    │ ├── htmlparser@1.7.7
    │ ├─┬ optimist@0.6.1
    │ │ ├── minimist@0.0.10
    │ │ └── wordwrap@0.0.3
    │ └─┬ underscore.string@3.3.4
    │   ├── sprintf-js@1.0.3
    │   └── util-deprecate@1.0.2
    ├── ip@1.1.3
    ├─┬ istanbul@0.4.5
    │ ├── abbrev@1.0.9
    │ ├─┬ escodegen@1.8.1
    │ │ ├── estraverse@1.9.3
    │ │ └─┬ source-map@0.2.0
    │ │   └── amdefine@1.0.1
    │ ├── esprima@2.7.3
    │ ├── glob@5.0.15
    │ ├─┬ handlebars@4.0.6
    │ │ └── source-map@0.4.4
    │ ├── nopt@3.0.6
    │ ├─┬ once@1.4.0
    │ │ └── wrappy@1.0.2
    │ ├── resolve@1.1.7
    │ ├─┬ supports-color@3.2.3
    │ │ └── has-flag@1.0.0
    │ ├─┬ which@1.2.12
    │ │ └── isexe@1.1.2
    │ └── wordwrap@1.0.0
    ├─┬ jimp@0.2.27
    │ ├── bignumber.js@2.4.0
    │ ├── bmp-js@0.0.1
    │ ├── es6-promise@3.2.1
    │ ├── exif-parser@0.1.9
    │ ├── file-type@3.9.0
    │ ├── jpeg-js@0.2.0
    │ ├─┬ load-bmfont@1.2.5
    │ │ ├── buffer-equal@0.0.1
    │ │ ├── parse-bmfont-ascii@1.0.6
    │ │ ├── parse-bmfont-binary@1.0.6
    │ │ ├─┬ parse-bmfont-xml@1.1.3
    │ │ │ ├── xml-parse-from-string@1.0.0
    │ │ │ └─┬ xml2js@0.4.17
    │ │ │   ├── sax@1.2.1
    │ │ │   └── xmlbuilder@4.2.1
    │ │ └─┬ xhr@2.3.3
    │ │   ├─┬ global@4.3.1
    │ │   │ ├─┬ min-document@2.19.0
    │ │   │ │ └── dom-walk@0.1.1
    │ │   │ └── process@0.5.2
    │ │   ├── is-function@1.0.1
    │ │   └─┬ parse-headers@2.0.1
    │ │     ├── for-each@0.3.2
    │ │     └── trim@0.0.1
    │ ├── pixelmatch@4.0.2
    │ ├── pngjs@3.0.0
    │ ├── read-chunk@1.0.1
    │ ├─┬ stream-to-buffer@0.1.0
    │ │ └── stream-to@0.2.2
    │ ├── tinycolor2@1.4.1
    │ └─┬ url-regex@3.2.0
    │   └── ip-regex@1.0.3
    ├── jquery@3.1.1
    ├─┬ json-2-csv@2.1.0
    │ ├── bluebird@3.4.6
    │ └── doc-path@1.0.8
    ├─┬ less@2.7.2
    │ ├─┬ errno@0.1.4
    │ │ └── prr@0.0.0
    │ ├── graceful-fs@4.1.11
    │ ├── image-size@0.5.1
    │ ├─┬ promise@7.1.1
    │ │ └── asap@2.0.5
    │ └── source-map@0.5.6
    ├─┬ logrotate-stream@0.2.5
    │ ├── byt@0.1.0
    │ └── log-rotate@0.2.7
    ├─┬ lru-cache@4.0.1
    │ ├── pseudomap@1.0.2
    │ └── yallist@2.0.0
    ├── mime@1.3.4
    ├── minimist@1.2.0
    ├─┬ mkdirp@0.5.1
    │ └── minimist@0.0.8
    ├─┬ mocha@3.1.2
    │ ├── browser-stdout@1.3.0
    │ ├─┬ commander@2.9.0
    │ │ └── graceful-readlink@1.0.1
    │ ├─┬ debug@2.2.0
    │ │ └── ms@0.7.1
    │ ├── diff@1.4.0
    │ ├── escape-string-regexp@1.0.5
    │ ├── glob@7.0.5
    │ ├── growl@1.9.2
    │ ├── json3@3.3.2
    │ ├─┬ lodash.create@3.1.1
    │ │ ├─┬ lodash._baseassign@3.2.0
    │ │ │ ├── lodash._basecopy@3.0.1
    │ │ │ └─┬ lodash.keys@3.1.2
    │ │ │   ├── lodash._getnative@3.9.1
    │ │ │   ├── lodash.isarguments@3.1.0
    │ │ │   └── lodash.isarray@3.0.4
    │ │ ├── lodash._basecreate@3.0.3
    │ │ └── lodash._isiterateecall@3.0.9
    │ └── supports-color@3.1.2
    ├── mocha-lcov-reporter@1.2.0
    ├─┬ mongodb@2.2.16
    │ ├─┬ mongodb-core@2.1.2
    │ │ ├── bson@1.0.4
    │ │ └─┬ require_optional@1.0.0
    │ │   └── resolve-from@2.0.0
    │ └─┬ readable-stream@2.1.5
    │   ├── buffer-shims@1.0.0
    │   ├── core-util-is@1.0.2
    │   ├── process-nextick-args@1.0.7
    │   └── string_decoder@0.10.31
    ├─┬ morgan@1.7.0
    │ ├── basic-auth@1.0.4
    │ └─┬ debug@2.2.0
    │   └── ms@0.7.1
    ├── mousetrap@1.6.0
    ├─┬ nconf@0.8.4
    │ ├── ini@1.3.4
    │ ├── secure-keys@1.0.0
    │ └─┬ yargs@3.32.0
    │   ├── camelcase@2.1.1
    │   ├─┬ cliui@3.2.0
    │   │ └── wrap-ansi@2.1.0
    │   ├── decamelize@1.2.0
    │   ├─┬ os-locale@1.4.0
    │   │ └─┬ lcid@1.0.0
    │   │   └── invert-kv@1.0.0
    │   ├── window-size@0.1.4
    │   └── y18n@3.2.1
    ├─┬ nodebb-plugin-composer-default@4.3.4
    │ └── screenfull@3.0.0
    ├─┬ nodebb-plugin-dbsearch@1.0.4
    │ └─┬ redisearch@0.0.6
    │   ├─┬ natural@0.2.1
    │   │ ├── apparatus@0.0.9
    │   │ └── sylvester@0.0.21
    │   └── redis@0.12.1
    ├─┬ nodebb-plugin-emoji-extended@1.1.1
    │ └── q@1.4.1
    ├─┬ nodebb-plugin-emoji-one@1.1.5
    │ ├── adm-zip@0.4.7
    │ └── wrench@1.5.9
    ├─┬ nodebb-plugin-markdown@7.0.1
    │ └─┬ markdown-it@6.1.1
    │   ├── entities@1.1.1
    │   ├── linkify-it@1.2.4
    │   ├── mdurl@1.0.1
    │   └── uc.micro@1.0.3
    ├── nodebb-plugin-mentions@1.1.3
    ├── nodebb-plugin-soundpack-default@0.1.6
    ├─┬ nodebb-plugin-spam-be-gone@0.4.10
    │ ├── akismet@1.0.0
    │ ├── project-honeypot@0.0.0
    │ └── simple-recaptcha-new@1.1.1
    ├── nodebb-rewards-essentials@0.0.9
    ├── nodebb-theme-lavender@3.0.15
    ├── nodebb-theme-persona@4.1.93
    ├── nodebb-theme-vanilla@5.1.57
    ├── nodebb-widget-essentials@2.0.13
    ├─┬ nodemailer@2.6.4
    │ ├─┬ libmime@2.1.0
    │ │ ├── iconv-lite@0.4.13
    │ │ ├── libbase64@0.1.0
    │ │ └── libqp@1.1.0
    │ ├─┬ mailcomposer@3.12.0
    │ │ └─┬ buildmail@3.10.0
    │ │   └── addressparser@1.0.1
    │ ├── nodemailer-direct-transport@3.3.2
    │ ├─┬ nodemailer-shared@1.1.0
    │ │ └── nodemailer-fetch@1.6.0
    │ ├── nodemailer-smtp-pool@2.8.2
    │ └─┬ socks@1.1.9
    │   └── smart-buffer@1.0.13
    ├── nodemailer-sendmail-transport@1.0.0
    ├─┬ nodemailer-smtp-transport@2.7.2
    │ ├── nodemailer-wellknown@0.1.10
    │ └─┬ smtp-connection@2.12.0
    │   └─┬ httpntlm@1.6.1
    │     ├── httpreq@0.4.22
    │     └── underscore@1.7.0
    ├─┬ passport@0.3.2
    │ ├── passport-strategy@1.0.0
    │ └── pause@0.0.1
    ├── passport-local@1.0.0
    ├─┬ postcss@5.2.11
    │ └── js-base64@2.1.9
    ├─┬ postcss-clean@1.0.2
    │ ├─┬ clean-css@3.4.24
    │ │ ├── commander@2.8.1
    │ │ └── source-map@0.4.4
    │ └── postcss@5.0.21
    ├── promise-polyfill@6.0.2
    ├─┬ prompt@1.0.0
    │ ├── pkginfo@0.4.0
    │ ├─┬ read@1.0.7
    │ │ └── mute-stream@0.0.7
    │ ├── revalidator@0.1.8
    │ ├─┬ utile@0.3.0
    │ │ ├── async@0.9.2
    │ │ ├── deep-equal@0.2.2
    │ │ ├── i@0.3.5
    │ │ └── ncp@1.0.1
    │ └─┬ winston@2.1.1
    │   ├── async@1.0.0
    │   ├── colors@1.0.3
    │   └── pkginfo@0.3.1
    ├─┬ redis@2.6.5
    │ ├── double-ended-queue@2.1.0-0
    │ ├── redis-commands@1.3.1
    │ └── redis-parser@2.4.0
    ├─┬ request@2.79.0
    │ ├── aws-sign2@0.6.0
    │ ├── aws4@1.5.0
    │ ├── caseless@0.11.0
    │ ├─┬ combined-stream@1.0.5
    │ │ └── delayed-stream@1.0.0
    │ ├── extend@3.0.0
    │ ├── forever-agent@0.6.1
    │ ├─┬ form-data@2.1.2
    │ │ └── asynckit@0.4.0
    │ ├─┬ har-validator@2.0.6
    │ │ └─┬ pinkie-promise@2.0.1
    │ │   └── pinkie@2.0.4
    │ ├─┬ hawk@3.1.3
    │ │ ├── boom@2.10.1
    │ │ ├── cryptiles@2.0.5
    │ │ ├── hoek@2.16.3
    │ │ └── sntp@1.0.9
    │ ├─┬ http-signature@1.1.1
    │ │ ├── assert-plus@0.2.0
    │ │ ├─┬ jsprim@1.3.1
    │ │ │ ├── extsprintf@1.0.2
    │ │ │ ├── json-schema@0.2.3
    │ │ │ └── verror@1.3.6
    │ │ └─┬ sshpk@1.10.2
    │ │   ├── asn1@0.2.3
    │ │   ├── assert-plus@1.0.0
    │ │   ├── bcrypt-pbkdf@1.0.0
    │ │   ├─┬ dashdash@1.14.1
    │ │   │ └── assert-plus@1.0.0
    │ │   ├── ecc-jsbn@0.1.1
    │ │   ├─┬ getpass@0.1.6
    │ │   │ └── assert-plus@1.0.0
    │ │   ├── jodid25519@1.0.2
    │ │   ├── jsbn@0.1.0
    │ │   └── tweetnacl@0.14.5
    │ ├── is-typedarray@1.0.0
    │ ├── isstream@0.1.2
    │ ├── json-stringify-safe@5.0.1
    │ ├── mime-types@2.1.14
    │ ├── oauth-sign@0.8.2
    │ ├── qs@6.3.0
    │ ├── stringstream@0.0.5
    │ ├─┬ tough-cookie@2.3.2
    │ │ └── punycode@1.4.1
    │ ├── tunnel-agent@0.4.3
    │ └── uuid@3.0.1
    ├── rimraf@2.5.4
    ├─┬ rss@1.2.2
    │ ├─┬ mime-types@2.1.13
    │ │ └── mime-db@1.25.0
    │ └── xml@1.0.1
    ├─┬ sanitize-html@1.14.1
    │ ├─┬ htmlparser2@3.9.2
    │ │ ├── domelementtype@1.3.0
    │ │ ├── domhandler@2.3.0
    │ │ └─┬ domutils@1.5.1
    │ │   └─┬ dom-serializer@0.1.0
    │ │     └── domelementtype@1.1.3
    │ ├── regexp-quote@0.0.0
    │ └── xtend@4.0.1
    ├── semver@5.3.0
    ├─┬ serve-favicon@2.3.2
    │ └── ms@0.7.2
    ├─┬ sitemap@1.9.0
    │ └── url-join@1.1.0
    ├─┬ socket.io@1.7.1
    │ ├── debug@2.3.3
    │ ├─┬ engine.io@1.8.1
    │ │ ├── base64id@0.1.0
    │ │ ├── debug@2.3.3
    │ │ ├─┬ engine.io-parser@1.3.1
    │ │ │ ├── after@0.8.1
    │ │ │ ├── arraybuffer.slice@0.0.6
    │ │ │ ├── base64-arraybuffer@0.1.5
    │ │ │ ├── blob@0.0.4
    │ │ │ ├─┬ has-binary@0.1.6
    │ │ │ │ └── isarray@0.0.1
    │ │ │ └── wtf-8@1.0.0
    │ │ └─┬ ws@1.1.1
    │ │   ├── options@0.0.6
    │ │   └── ultron@1.0.2
    │ ├─┬ has-binary@0.1.7
    │ │ └── isarray@0.0.1
    │ ├─┬ socket.io-adapter@0.5.0
    │ │ └── debug@2.3.3
    │ └─┬ socket.io-parser@2.3.1
    │   ├── component-emitter@1.1.2
    │   ├─┬ debug@2.2.0
    │   │ └── ms@0.7.1
    │   └── isarray@0.0.1
    ├─┬ socket.io-client@1.7.1
    │ ├── backo2@1.0.2
    │ ├── component-bind@1.0.0
    │ ├── component-emitter@1.2.1
    │ ├── debug@2.3.3
    │ ├─┬ engine.io-client@1.8.1
    │ │ ├── component-emitter@1.2.1
    │ │ ├── component-inherit@0.0.3
    │ │ ├── debug@2.3.3
    │ │ ├── has-cors@1.1.0
    │ │ ├── parsejson@0.0.3
    │ │ ├── parseqs@0.0.5
    │ │ └── yeast@0.1.2
    │ ├── indexof@0.0.1
    │ ├── object-component@0.0.3
    │ ├─┬ parseuri@0.0.5
    │ │ └─┬ better-assert@1.0.2
    │ │   └── callsite@1.0.0
    │ └── to-array@0.1.4
    ├─┬ socket.io-redis@2.0.0
    │ ├── async@2.1.4
    │ ├── debug@2.3.3
    │ ├─┬ msgpack-js@0.3.0
    │ │ └─┬ bops@0.0.7
    │ │   ├── base64-js@0.0.2
    │ │   └── to-utf8@0.0.1
    │ ├── redis@2.6.3
    │ └── uid2@0.0.3
    ├── socketio-wildcard@0.3.0
    ├── string@3.3.3
    ├── templates.js@0.3.5
    ├── toobusy-js@0.5.1
    ├─┬ uglify-js@2.7.5
    │ ├── async@0.2.10
    │ ├── uglify-to-browserify@1.0.2
    │ └─┬ yargs@3.10.0
    │   ├── camelcase@1.2.1
    │   ├─┬ cliui@2.1.0
    │   │ ├─┬ center-align@0.1.3
    │   │ │ ├─┬ align-text@0.1.4
    │   │ │ │ ├─┬ kind-of@3.1.0
    │   │ │ │ │ └── is-buffer@1.1.4
    │   │ │ │ ├── longest@1.0.1
    │   │ │ │ └── repeat-string@1.6.1
    │   │ │ └── lazy-cache@1.0.4
    │   │ ├── right-align@0.1.3
    │   │ └── wordwrap@0.0.2
    │   └── window-size@0.1.0
    ├── underscore@1.8.3
    ├── underscore.deep@0.5.1
    ├── validator@6.2.1
    ├─┬ winston@2.3.1
    │ ├── async@1.0.0
    │ ├── colors@1.0.3
    │ ├── cycle@1.0.3
    │ ├── eyes@0.1.8
    │ └── stack-trace@0.0.9
    ├── xmlhttprequest@1.8.0
    ├── xmlhttprequest-ssl@1.5.3
    └── xregexp@3.1.1
    


  • bump bump



  • @julian, please excuse the ping but do you have an idea about why the upgrade is causing this?


  • Admin

    The common causes for a session mismatch error are usually one of the following:

    1. Mis-configured URL parameter in your config.json file

    If you have a misconfigured url value in your config.json file, the cookie may be saved incorrectly (or not at all), causing a session mismatch error. Please ensure that the link you are accessing your site with and the url defined match.

    2. Improper/malformed cookieDomain set in ACP

    Sometimes admins set this value without realising that they probably don't need to set it at all. The default is perfectly fine. This is what the config looks like:

    Cookie Domain setting

    If this is set, you'll want to revert the setting by editing your database directly:

    Redis: hdel config cookieDomain

    Perhaps those may help?



  • @julian Unfortunately, no luck. I opened up 4567 to see if it was my use of HTTP2 causing some problems, and the error persists and is a bit more descriptive:

    http://domain.com:4567/login?error=csrf-invalid

    Here is my nginx conf:

    server {
        listen 80;
    
        server_name www.domain.com domain.com;
        return 301 https://domain.com$request_uri;    
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        server_name www.domain.com;
        return 301 https://domain.com$request_uri;
        ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    }
    
    upstream io_nodes {
        ip_hash;
        server 127.0.0.1:4567;
        server 127.0.0.1:4568;
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        ssl on;
        ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:50m;
        #add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        ssl_stapling on; # Requires nginx >= 1.3.7
        ssl_stapling_verify on; # Requires nginx => 1.3.7
        
        ssl_session_timeout 1d;
        ssl_trusted_certificate /etc/letsencrypt/live/domain.com/chain.pem;
        resolver 8.8.4.4 8.8.8.8 valid=300s;
        resolver_timeout 5s; 
        ssl_dhparam /etc/nginx/conf/dhparam.pem;
    
        server_name domain.com;    
    	
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    
        proxy_redirect off;
    
        # Socket.IO Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        gzip            on;
        gzip_min_length 1000;
        gzip_proxied    off;
        gzip_types      text/plain application/xml application/x-javascript text/css application/json;
        
        location @nodebb {
    	      proxy_pass http://io_nodes;
        }
        
        location ~ ^/(images|language|sounds|templates|uploads|vendor|src\/modules|nodebb\.min\.js|stylesheet\.css|admin\.css) {
            root /home/ubuntu/NodeBB/public/;
            try_files $uri $uri/ @nodebb;
    	access_log off;
    	expires 1d;
        }
            
        location / {
            proxy_pass http://io_nodes;
        }
    }
    

  • Admin

    Ensure that a csrf token is being sent during the login process (you can investigate the login request in your web browser).

    Also, there should be no need to run NodeBB as root.



  • @julian Got it!

    root /home/ubuntu/NodeBB/public/; mismatched. I had an older install there. Updating that directory worked.

    And you're right. The nodebb.service in systemd downgrades to the nodebb user.


  • Admin

    Glad to hear it is resolved :)


Log in to reply
 

Looks like your connection to NodeBB was lost, please wait while we try to reconnect.