nextcloud / nextcloud/twofactor_webauthn
No WebAuthN popup with Dashlane extension
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 59
- Forks
- 11
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 16
Description
Steps to reproduce
- Install Dashlane & this plugin
- Configure WebAuthN
- Try to login
Expected behaviour
A popup should display, even though Dashlane is installed
Actual behaviour
No WebAuthN popup is displayed and the only way to log in is using a backup code.
Dashlane is a leading password manager. It has WebAuthN Support to store/use certificate accross devices.
Probably this is messing something up.
Server configuration
Web server: Nginx
Database: PostgreSQL
PHP version: 8.3
Nextcloud version: 33.0.5
List of activated apps
$ docker compose exec --user www-data nextcloud-aio-nextcloud php /var/www/html/occ app:list
Enabled:
- activity: 6.0.0
- admin_audit: 1.23.0
- app_api: 33.0.0
- bruteforcesettings: 6.0.0
- circles: 33.0.0
- cloud_federation_api: 1.17.0
- comments: 1.23.0
- contactsinteraction: 1.14.1
- dashboard: 7.13.0
- dav: 1.36.0
- drawio: 4.2.4
- encryption: 2.21.0
- federatedfilesharing: 1.23.0
- federation: 1.23.0
- files: 2.5.0
- files_downloadlimit: 5.1.0
- files_external: 1.25.1
- files_pdfviewer: 6.0.0
- files_reminders: 1.6.0
- files_sharing: 1.25.2
- files_versions: 1.26.0
- files_zip: 3.0.0
- firstrunwizard: 6.0.0
- integration_paperless: 1.0.13
- logreader: 6.0.0
- lookup_server_connector: 1.21.0
- nextcloud_announcements: 5.0.0
- notifications: 6.0.0
- notify_push: 1.3.3
- oauth2: 1.21.0
- onlyoffice: 10.1.2
- password_policy: 5.0.0
- photos: 6.0.0
- privacy: 5.0.0
- profile: 1.2.0
- provisioning_api: 1.23.0
- related_resources: 4.0.0
- serverinfo: 5.0.0
- settings: 1.16.0
- sharebymail: 1.23.0
- spreed: 23.0.6
- support: 5.0.0
- survey_client: 5.0.0
- suspicious_login: 11.0.0
- systemtags: 1.23.0
- text: 7.0.1
- theming: 2.8.0
- twofactor_backupcodes: 1.22.0
- twofactor_webauthn: 2.7.0
- updatenotification: 1.23.0
- user_status: 1.13.0
- viewer: 6.0.0
- weather_status: 1.13.0
- webhook_listeners: 1.5.0
- workflowengine: 2.15.0
Disabled:
- breezedark: 29.0.0 (installed 29.0.0)
- calendar: 6.5.0 (installed 6.5.0)
- contacts: 8.7.2 (installed 8.7.2)
- deck: 1.17.4 (installed 1.17.4)
- electronicsignatures: 3.0.6 (installed 3.0.6)
- end_to_end_encryption: 2.2.0 (installed 2.2.0)
- files_accesscontrol: 4.0.1 (installed 4.0.1)
- files_archive: 1.2.8 (installed 1.2.8)
- files_automatedtagging: 4.0.0 (installed 4.0.0)
- files_confidential: 5.1.0 (installed 5.1.0)
- files_rightclick: 0.15.1 (installed 1.6.0)
- files_trashbin: 1.23.0 (installed 1.16.0)
- maps: 1.7.1 (installed 1.7.1)
- nextcloud-aio: 0.8.0 (installed 0.8.0)
- recommendations: 6.0.0 (installed 1.6.0)
- tasks: 0.18.0 (installed 0.18.0)
- twofactor_nextcloud_notification: 7.0.0
- twofactor_totp: 15.0.0 (installed 10.0.0-beta.2)
- user_ldap: 1.24.0
Nextcloud configuration
$ docker compose exec --user www-data nextcloud-aio-nextcloud php /var/www/html/occ config:list syste
m
{
"system": {
"memcache.local": "\\OC\\Memcache\\APCu",
"apps_paths": [
{
"path": "\/var\/www\/html\/apps",
"url": "\/apps",
"writable": false
},
{
"path": "\/var\/www\/html\/custom_apps",
"url": "\/custom_apps",
"writable": true
}
],
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"password": "***REMOVED SENSITIVE VALUE***",
"port": 6379,
"timeout": 3,
"read_timeout": 10
},
"overwritehost": "<redacted>",
"overwriteprotocol": "https",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"localhost",
"<redacted>"
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "pgsql",
"version": "33.0.5.1",
"overwrite.cli.url": "<redacted>",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"instanceid": "***REMOVED SENSITIVE VALUE***",
"loglevel": 2,
"log_type": "file",
"logfile": "\/var\/www\/html\/data\/nextcloud.log",
"log_rotate_size": "10485760",
"log.condition": {
"apps": [
"admin_audit"
]
},
"preview_max_x": "2048",
"preview_max_y": "2048",
"jpeg_quality": "60",
"enabledPreviewProviders": {
"1": "OC\\Preview\\Image",
"2": "OC\\Preview\\MarkDown",
"3": "OC\\Preview\\MP3",
"4": "OC\\Preview\\TXT",
"5": "OC\\Preview\\OpenDocument",
"6": "OC\\Preview\\Movie",
"0": "OC\\Preview\\Imaginary",
"23": "OC\\Preview\\ImaginaryPDF"
},
"enable_previews": true,
"upgrade.disable-web": true,
"mail_smtpmode": "smtp",
"trashbin_retention_obligation": "auto, 30",
"versions_retention_obligation": "auto, 30",
"activity_expire_days": "30",
"simpleSignUpLink.shown": false,
"share_folder": "\/Shared",
"one-click-instance": true,
"one-click-instance.user-limit": 100,
"htaccess.RewriteBase": "\/",
"files_external_allow_create_new_local": false,
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"allow_local_remote_servers": true,
"mail_sendmailmode": "smtp",
"maintenance": false,
"one-click-instance.link": "https:\/\/nextcloud.com\/all-in-one\/",
"enforce_theme": "",
"updatedirectory": "\/nc-updater",
"mail_smtphost": "***REMOVED SENSITIVE VALUE***",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"mail_smtpport": "587",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtpauth": 1,
"mail_smtpname": "***REMOVED SENSITIVE VALUE***",
"mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
"upgrade.cli-upgrade-link": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/2726",
"default_phone_region": "BE",
"davstorage.request_timeout": 3600,
"dbpersistent": false,
"appsallowlist": false,
"maintenance_window_start": 100,
"auth.bruteforce.protection.enabled": true,
"ratelimit.protection.enabled": true,
"documentation_url.server_logs": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/5425",
"onlyoffice": {
"editors_check_interval": "0"
},
"updatechecker": false,
"preview_imaginary_url": "***REMOVED SENSITIVE VALUE***",
"preview_imaginary_key": "***REMOVED SENSITIVE VALUE***",
"serverid": 423,
"log_type_audit": "file",
"logfile_audit": "\/var\/www\/html\/data\/audit.log",
"update_channel": "stable",
"DOMAIN": "<redacted>"
}
}
Browser
Chrome 149 on Windows
With Dashlane Chrome Extension
Browser logs
``` Uncaught (in promise) TypeError: Cannot read properties of null (reading 'message') at HTMLDocument. (kwift.CHROME.js:149:11958) at async dashlane-webauthn-page-script.js:1:4293 at async ij (startAuthentication.js:68:9)| await in (anonymous) | ||
|---|---|---|
| (anonymous) | @ | |
| apply | @ | |
| (anonymous) | @ | |
| tryCatch | @ | |
| (anonymous) | @ | |
| (anonymous) | @ | |
| asyncGeneratorStep | @ | |
| _next | @ | |
| (anonymous) | @ | |
| (anonymous) | @ | |
| sign | @ | |
| mounted | @ | |
| (anonymous) | @ | |
| (anonymous) | @ | |
| (anonymous) | @ |
</details>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the WebAuthn flow in Challenge.vue and the call chain through main-challenge.js and startAuthentication.js, then reproduce the login with the Dashlane Chrome extension enabled. Inspect the reported null-message error and compare behavior without Dashlane. Done means the WebAuthn popup appears and login succeeds when Dashlane is installed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- authentication, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100