Skip to content

[nodebb-plugin-2factor] Two-Factor Authentication

Uncategorized
  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process
  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    Very nice! Works fine.

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    Good to hear it @revunix 😄

    I hope to add support for reset keys and ACP deactivation, as currently, if you lose your device, you won't be able to bypass 😦

  • Good to hear it @revunix 😄

    I hope to add support for reset keys and ACP deactivation, as currently, if you lose your device, you won't be able to bypass 😦

    @julian I recently had my phone smashed by a drunk friend (I could just make out the numbers on a flickering screen) and discovered how terrible the "reset code" or "add code to another device" situation is with a new phone on sooo many websites where I had 2FA, even if you can get in with your current one.

  • @julian I recently had my phone smashed by a drunk friend (I could just make out the numbers on a flickering screen) and discovered how terrible the "reset code" or "add code to another device" situation is with a new phone on sooo many websites where I had 2FA, even if you can get in with your current one.

    @drew Indeed, I don't know how many support tickets I will need to make for all the sites where I use 2 factor auth, 3 Google accounts, Steam, Cloudflare and much more...

    Anyways 2FA looks nice.

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    Published an update. (Changelog in OP)

    @drew @kowlin At least now the administrator can reset TFA keys, although getting in touch with the admin is another matter altogether 😆

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    Are backup codes supported now btw? I see a closed GitHub issue for them, which suggests they are.

  • Are backup codes supported now btw? I see a closed GitHub issue for them, which suggests they are.

    @LB Yep, they are, although they are generated only when you start the 2FA setup process, so you will want to disable 2FA, trash your record, and re-generate one. The backup codes will be displayed a single time for you to record.

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    When I scan this with Authy or Google Authenticator it says "QR code is invalid" no matter how many times I create a new one. Is there a fix?

  • When I scan this with Authy or Google Authenticator it says "QR code is invalid" no matter how many times I create a new one. Is there a fix?

    @cookieman768 The same situation(((

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    Plug-ins no longer work with the version «1.7.5».

  • Plug-ins no longer work with the version «1.7.5».

    @ilya Can you elaborate on what doesn't work? Saying "no longer work" doesn't help narrow down any problems.

  • @ilya Can you elaborate on what doesn't work? Saying "no longer work" doesn't help narrow down any problems.

    @julian The problem was solved with FreeOTP Authenticator (Android).

  • @ilya This plugin no longer works with 1.17. Error below

    2021-04-23T13:18:12.371Z [4567/469428] - error: uncaughtException: Failed to lookup view "admin/dashboard" in views directory "/home/phenomlab/nodebb/build/public/templates"
    Error: Failed to lookup view "admin/dashboard" in views directory "/home/phenomlab/nodebb/build/public/templates"
        at Function.render (/home/phenomlab/nodebb/node_modules/express/lib/application.js:580:17)
        at ServerResponse.render (/home/phenomlab/nodebb/node_modules/express/lib/response.js:1012:7)
        at /home/phenomlab/nodebb/src/middleware/render.js:89:11
        at new Promise (<anonymous>)
        at renderContent (/home/phenomlab/nodebb/src/middleware/render.js:88:10)
        at ServerResponse.renderOverride [as render] (/home/phenomlab/nodebb/src/middleware/render.js:64:14)
        at processTicksAndRejections (node:internal/process/task_queues:96:5) {"error":{"view":{"defaultEngine":"tpl","ext":".tpl","name":"admin/dashboard","root":"/home/phenomlab/nodebb/build/public/templates"}},"stack":"Error: Failed to lookup view \"admin/dashboard\" in views directory \"/home/phenomlab/nodebb/build/public/templates\"\n    at Function.render (/home/phenomlab/nodebb/node_modules/express/lib/application.js:580:17)\n    at ServerResponse.render (/home/phenomlab/nodebb/node_modules/express/lib/response.js:1012:7)\n    at /home/phenomlab/nodebb/src/middleware/render.js:89:11\n    at new Promise (<anonymous>)\n    at renderContent (/home/phenomlab/nodebb/src/middleware/render.js:88:10)\n    at ServerResponse.renderOverride [as render] (/home/phenomlab/nodebb/src/middleware/render.js:64:14)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)","exception":true,"date":"Fri Apr 23 2021 14:18:12 GMT+0100 (British Summer Time)","process":{"pid":469428,"uid":1000,"gid":1000,"cwd":"/home/phenomlab/nodebb","execPath":"/usr/bin/node","version":"v16.0.0","argv":["/usr/bin/node","/home/phenomlab/nodebb/app.js"],"memoryUsage":{"rss":294481920,"heapTotal":195198976,"heapUsed":164432120,"external":74292726,"arrayBuffers":70953438}},"os":{"loadavg":[1.23,1.17,0.8],"uptime":340350.31},"trace":[{"column":17,"file":"/home/phenomlab/nodebb/node_modules/express/lib/application.js","function":"Function.render","line":580,"method":"render","native":false},{"column":7,"file":"/home/phenomlab/nodebb/node_modules/express/lib/response.js","function":"ServerResponse.render","line":1012,"method":"render","native":false},{"column":11,"file":"/home/phenomlab/nodebb/src/middleware/render.js","function":null,"line":89,"method":null,"native":false},{"column":null,"file":null,"function":"new Promise","line":null,"method":null,"native":false},{"column":10,"file":"/home/phenomlab/nodebb/src/middleware/render.js","function":"renderContent","line":88,"method":null,"native":false},{"column":14,"file":"/home/phenomlab/nodebb/src/middleware/render.js","function":"ServerResponse.renderOverride [as render]","line":64,"method":"renderOverride [as render]","native":false},{"column":5,"file":"node:internal/process/task_queues","function":"processTicksAndRejections","line":96,"method":null,"native":false}]}
    2021-04-23T13:18:12.371Z [4567/469428] - error: Error: Failed to lookup view "admin/dashboard" in views directory "/home/phenomlab/nodebb/build/public/templates"
        at Function.render (/home/phenomlab/nodebb/node_modules/express/lib/application.js:580:17)
        at ServerResponse.render (/home/phenomlab/nodebb/node_modules/express/lib/response.js:1012:7)
        at /home/phenomlab/nodebb/src/middleware/render.js:89:11
        at new Promise (<anonymous>)
        at renderContent (/home/phenomlab/nodebb/src/middleware/render.js:88:10)
        at ServerResponse.renderOverride [as render] (/home/phenomlab/nodebb/src/middleware/render.js:64:14)
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
    
    
  • @ilya This plugin no longer works with 1.17. Error below

    2021-04-23T13:18:12.371Z [4567/469428] - error: uncaughtException: Failed to lookup view "admin/dashboard" in views directory "/home/phenomlab/nodebb/build/public/templates"
    Error: Failed to lookup view "admin/dashboard" in views directory "/home/phenomlab/nodebb/build/public/templates"
        at Function.render (/home/phenomlab/nodebb/node_modules/express/lib/application.js:580:17)
        at ServerResponse.render (/home/phenomlab/nodebb/node_modules/express/lib/response.js:1012:7)
        at /home/phenomlab/nodebb/src/middleware/render.js:89:11
        at new Promise (<anonymous>)
        at renderContent (/home/phenomlab/nodebb/src/middleware/render.js:88:10)
        at ServerResponse.renderOverride [as render] (/home/phenomlab/nodebb/src/middleware/render.js:64:14)
        at processTicksAndRejections (node:internal/process/task_queues:96:5) {"error":{"view":{"defaultEngine":"tpl","ext":".tpl","name":"admin/dashboard","root":"/home/phenomlab/nodebb/build/public/templates"}},"stack":"Error: Failed to lookup view \"admin/dashboard\" in views directory \"/home/phenomlab/nodebb/build/public/templates\"\n    at Function.render (/home/phenomlab/nodebb/node_modules/express/lib/application.js:580:17)\n    at ServerResponse.render (/home/phenomlab/nodebb/node_modules/express/lib/response.js:1012:7)\n    at /home/phenomlab/nodebb/src/middleware/render.js:89:11\n    at new Promise (<anonymous>)\n    at renderContent (/home/phenomlab/nodebb/src/middleware/render.js:88:10)\n    at ServerResponse.renderOverride [as render] (/home/phenomlab/nodebb/src/middleware/render.js:64:14)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)","exception":true,"date":"Fri Apr 23 2021 14:18:12 GMT+0100 (British Summer Time)","process":{"pid":469428,"uid":1000,"gid":1000,"cwd":"/home/phenomlab/nodebb","execPath":"/usr/bin/node","version":"v16.0.0","argv":["/usr/bin/node","/home/phenomlab/nodebb/app.js"],"memoryUsage":{"rss":294481920,"heapTotal":195198976,"heapUsed":164432120,"external":74292726,"arrayBuffers":70953438}},"os":{"loadavg":[1.23,1.17,0.8],"uptime":340350.31},"trace":[{"column":17,"file":"/home/phenomlab/nodebb/node_modules/express/lib/application.js","function":"Function.render","line":580,"method":"render","native":false},{"column":7,"file":"/home/phenomlab/nodebb/node_modules/express/lib/response.js","function":"ServerResponse.render","line":1012,"method":"render","native":false},{"column":11,"file":"/home/phenomlab/nodebb/src/middleware/render.js","function":null,"line":89,"method":null,"native":false},{"column":null,"file":null,"function":"new Promise","line":null,"method":null,"native":false},{"column":10,"file":"/home/phenomlab/nodebb/src/middleware/render.js","function":"renderContent","line":88,"method":null,"native":false},{"column":14,"file":"/home/phenomlab/nodebb/src/middleware/render.js","function":"ServerResponse.renderOverride [as render]","line":64,"method":"renderOverride [as render]","native":false},{"column":5,"file":"node:internal/process/task_queues","function":"processTicksAndRejections","line":96,"method":null,"native":false}]}
    2021-04-23T13:18:12.371Z [4567/469428] - error: Error: Failed to lookup view "admin/dashboard" in views directory "/home/phenomlab/nodebb/build/public/templates"
        at Function.render (/home/phenomlab/nodebb/node_modules/express/lib/application.js:580:17)
        at ServerResponse.render (/home/phenomlab/nodebb/node_modules/express/lib/response.js:1012:7)
        at /home/phenomlab/nodebb/src/middleware/render.js:89:11
        at new Promise (<anonymous>)
        at renderContent (/home/phenomlab/nodebb/src/middleware/render.js:88:10)
        at ServerResponse.renderOverride [as render] (/home/phenomlab/nodebb/src/middleware/render.js:64:14)
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
    
    

    I've just seen an update for this plugin. Is it compatible now ? 🤔

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    v5.0.0 of the 2factor authentication plugin has been published. It now allows for concurrent second factors, so you can have both a hardware key and an authenticator app in use at the same time.

    When challenged, you can use either option to verify your identity.

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    v7.4.0 of this plugin now notifies you in the event that your account was accessed, but the second factor challenge was not passed.

    This provides a much-needed notification for the user that their password has been compromised and is in need of changing.

  • v7.4.0 of this plugin now notifies you in the event that your account was accessed, but the second factor challenge was not passed.

    This provides a much-needed notification for the user that their password has been compromised and is in need of changing.

    👏🔥🔥🔥

    @julian this is amazing feature!!! Thank you! 🐣

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    when i try to add a hardware key i instantly get the message "hardware key registration abborted" and in the logs i found this:
    2023-11-20T06:03:39.301Z [4567/995] - info: [plugin/2factor] Denying socket access for uid 2 pending second factor.

    Any idea how I can fix this?

  • In addition to regular authentication via username/password or SSO, a second layer of security can be configured, permitting access only if a time-based one-time password is supplied, typically generated/stored on a mobile device.

    The Two-Factor Authentication plugin will expose this feature to end-users, allowing them to configure their
    devices and enabling this enhanced security on their account.

    Requirements

    • Requires NodeBB v0.7.2 or newer.

    Installation

    Install the plugin via the ACP/Plugins page.

    Screenshots

    Token Generation Step

    Token Generation Step

    Challenge Step

    Challenge Step

    Changelog

    v1.0.2

    • Added the ability to disassociate user tokens via the ACP page (in case users get locked out)

    v1.0.3

    • Bug: Fixed the browser title on the TFA settings page
    • Bug: Fixed issue where hitting enter while keying in the validation code would abort the process

    Hmm, that actually sounds like a bug. Can you let me know your NodeBB version and 2factor plugin version?

    I'll try to take a look tomorrow

Diese Artikel könnten Dich auch interessieren.