Title: WebID-TLS: Fix Accept header and JSON-LD regex for HTML profiles · Issue #70 · JavaScriptSolidServer/JavaScriptSolidServer · GitHub
Open Graph Title: WebID-TLS: Fix Accept header and JSON-LD regex for HTML profiles · Issue #70 · JavaScriptSolidServer/JavaScriptSolidServer
X Title: WebID-TLS: Fix Accept header and JSON-LD regex for HTML profiles · Issue #70 · JavaScriptSolidServer/JavaScriptSolidServer
Description: Summary WebID-TLS authentication fails with HTML profiles that have embedded JSON-LD due to two issues in src/auth/webid-tls.js. Issues Found 1. Accept header priority ignored by conneg Line 142: 'Accept': 'application/ld+json, text/turt...
Open Graph Description: Summary WebID-TLS authentication fails with HTML profiles that have embedded JSON-LD due to two issues in src/auth/webid-tls.js. Issues Found 1. Accept header priority ignored by conneg Line 142: '...
X Description: Summary WebID-TLS authentication fails with HTML profiles that have embedded JSON-LD due to two issues in src/auth/webid-tls.js. Issues Found 1. Accept header priority ignored by conneg Line 142: &...
Opengraph URL: https://github.com/JavaScriptSolidServer/JavaScriptSolidServer/issues/70
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"WebID-TLS: Fix Accept header and JSON-LD regex for HTML profiles","articleBody":"## Summary\n\nWebID-TLS authentication fails with HTML profiles that have embedded JSON-LD due to two issues in `src/auth/webid-tls.js`.\n\n## Issues Found\n\n### 1. Accept header priority ignored by conneg\n\n**Line 142:**\n```javascript\n'Accept': 'application/ld+json, text/turtle, application/json'\n```\n\nJSS conneg returns `text/turtle` even when `application/ld+json` is listed first. When Turtle is returned, the keys are separate nodes not linked from `#me` via `cert:key`, causing verification to fail.\n\n**Fix:** Change to `'Accept': 'text/html'` to get the HTML with embedded JSON-LD.\n\n### 2. JSON-LD regex too strict\n\n**Line 160:**\n```javascript\n/\u003cscript\\s+type=[\"']application\\/ld\\+json[\"']\\s*\u003e([\\s\\S]*?)\u003c\\/script\u003e/i\n```\n\nThis regex expects the `\u003e` immediately after the type attribute (with optional whitespace). It fails when there are additional attributes like `id=\"me\"`:\n```html\n\u003cscript type=\"application/ld+json\" id=\"me\"\u003e\n```\n\n**Fix:** Use more flexible regex:\n```javascript\n/\u003cscript[^\u003e]*type=[\"']application\\/ld\\+json[\"'][^\u003e]*\u003e([\\s\\S]*?)\u003c\\/script\u003e/i\n```\n\n### 3. @id references not dereferenced\n\nThe code in `extractCertKeys` looks for `cert:key` on the `#me` node and passes each key object to `parseKeyObject`. However, if `cert:key` contains `@id` references like:\n```json\n\"http://www.w3.org/ns/auth/cert#key\": [\n { \"@id\": \"#key1\" },\n { \"@id\": \"#key2\" }\n]\n```\n\nThe `parseKeyObject` function won't find `cert:modulus`/`cert:exponent` because they're on the referenced nodes, not inline.\n\n**Workaround:** Add inline modulus/exponent to the key references in the profile.\n\n**Proper fix:** Dereference `@id` pointers to find the actual key objects in the JSON-LD graph.\n\n## Environment\n\n- JSS v0.0.75\n- Node.js v22.21.1","author":{"url":"https://github.com/melvincarvalho","@type":"Person","name":"melvincarvalho"},"datePublished":"2026-01-09T12:54:57.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/70/JavaScriptSolidServer/issues/70"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:be94ca12-d37a-cce1-7fbb-5595571e2ab6 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E026:85EB9:467486:60A69A:69774E14 |
| html-safe-nonce | 2d297dba1641dfac38367056fc810e302aedadc32f408f3e1ec4768cc9a6b8ee |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFMDI2Ojg1RUI5OjQ2NzQ4Njo2MEE2OUE6Njk3NzRFMTQiLCJ2aXNpdG9yX2lkIjoiODg4MTIwODYwMjc5MDQxNTg5MiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 884b97e58ad2beb5aebb95fa1e6d7ba19a1b7fb223fe0838bd0d55a475018281 |
| hovercard-subject-tag | issue:3796852328 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/JavaScriptSolidServer/JavaScriptSolidServer/70/issue_layout |
| twitter:image | https://opengraph.githubassets.com/02ee5a2b44aac1c0fddba1c22e3f0b8fefaabc4dcb03370e3bea4015edd909c0/JavaScriptSolidServer/JavaScriptSolidServer/issues/70 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/02ee5a2b44aac1c0fddba1c22e3f0b8fefaabc4dcb03370e3bea4015edd909c0/JavaScriptSolidServer/JavaScriptSolidServer/issues/70 |
| og:image:alt | Summary WebID-TLS authentication fails with HTML profiles that have embedded JSON-LD due to two issues in src/auth/webid-tls.js. Issues Found 1. Accept header priority ignored by conneg Line 142: '... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | melvincarvalho |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3310064f35a62c06a4024ba37f41c06836f39376a095c2dfd2c4b693c34965be |
| turbo-cache-control | no-preview |
| go-import | github.com/JavaScriptSolidServer/JavaScriptSolidServer git https://github.com/JavaScriptSolidServer/JavaScriptSolidServer.git |
| octolytics-dimension-user_id | 205442424 |
| octolytics-dimension-user_login | JavaScriptSolidServer |
| octolytics-dimension-repository_id | 958025407 |
| octolytics-dimension-repository_nwo | JavaScriptSolidServer/JavaScriptSolidServer |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 958025407 |
| octolytics-dimension-repository_network_root_nwo | JavaScriptSolidServer/JavaScriptSolidServer |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 67d5f8d1d53c3cc4f49fc3bb8029933c3dc219e6 |
| ui-target | canary-2 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width