{"_id":"@benote/sso-backend","_rev":"4-2d5aed7bfac73b19ad776f8c46a208a6","name":"@benote/sso-backend","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@benote/sso-backend","version":"1.0.0","_id":"@benote/sso-backend@1.0.0","maintainers":[{"name":"latitibabu","email":"latitibabu2018@gmail.com"}],"dist":{"shasum":"269acdfeb810f420e8201319b8d22e3a41c208cb","tarball":"https://registry.npmjs.org/@benote/sso-backend/-/sso-backend-1.0.0.tgz","fileCount":3,"integrity":"sha512-LcTFoT9IPszMF03OQr+RYkwwkpg8IyCpHvXX95Ybgh1q3Z1g5uNqJqPp6EbRPeAbmFj0g0Ei3OIMDgt63060Kg==","signatures":[{"sig":"MEUCIQD7zedMloaGbzHSB+Yyvr0B/9YE/s6eweko01AkKUc2NwIgA3ODcac1tBtZrSnCT+ndWKyNxU7wIBbUzjwuVSIIdEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1516},"main":"index.js","_npmUser":{"name":"latitibabu","email":"latitibabu2018@gmail.com"},"_npmVersion":"11.6.1","description":"Backend SSO logic for Benote ecosystem","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sso-backend_1.0.0_1769687457754_0.7014648487173094","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@benote/sso-backend","version":"1.1.0","_id":"@benote/sso-backend@1.1.0","maintainers":[{"name":"latitibabu","email":"latitibabu2018@gmail.com"}],"dist":{"shasum":"a2fdc036d75577dc52855b0c3a1a39236700cf22","tarball":"https://registry.npmjs.org/@benote/sso-backend/-/sso-backend-1.1.0.tgz","fileCount":4,"integrity":"sha512-OxkCLBXtPrbHTir01WwqgjW9ZKU6W/CWZNI+F6418mdo6yYbmnZZ56Cd5pemCobIr29G9s8jKHephirCVS0s2Q==","signatures":[{"sig":"MEQCIFqc9M58RCwoO7RXdEGAomZAYRMYbqvu8aizDNTt9W9NAiAQcyt+h9yZFgdloKOKVxIHDYEAb/G3Uqrnn3ami9/5bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2903},"main":"index.js","gitHead":"5cfdbcf01659d854cedbc63a4d3c81ab4aab1dda","_npmUser":{"name":"latitibabu","email":"latitibabu2018@gmail.com"},"_npmVersion":"11.6.1","description":"Backend SSO logic for Benote ecosystem","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sso-backend_1.1.0_1769687802348_0.8601759288043971","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@benote/sso-backend","version":"1.1.1","_id":"@benote/sso-backend@1.1.1","maintainers":[{"name":"latitibabu","email":"latitibabu2018@gmail.com"}],"dist":{"shasum":"368120407072116d989a718361c49f1ea56443c1","tarball":"https://registry.npmjs.org/@benote/sso-backend/-/sso-backend-1.1.1.tgz","fileCount":4,"integrity":"sha512-Wom8Et4IJIXPbTrH9HzPFx2z+HBQc6WrOjSJ/szTYTNPqRbnpEFOpsP0W7VSvYuEtsytXHRmZ7GGjrlIIcLA2w==","signatures":[{"sig":"MEYCIQDBilJSw7/HuyeHbKuJF4ySSKM2YlRCvUyLuab+KIyshgIhANxdCj8mEx4QqVOoMKLPLuJvWr7qmhikrcMWZ6eDxwQS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2908},"main":"index.js","gitHead":"5cfdbcf01659d854cedbc63a4d3c81ab4aab1dda","_npmUser":{"name":"latitibabu","email":"latitibabu2018@gmail.com"},"_npmVersion":"11.6.1","description":"Backend SSO logic for Benote ecosystem","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sso-backend_1.1.1_1769688280836_0.6154584208958129","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@benote/sso-backend","version":"1.3.0","description":"Backend SSO logic for Benote ecosystem","main":"index.cjs","module":"index.mjs","exports":{".":{"require":"./index.cjs","import":"./index.mjs"}},"scripts":{"test":"node --test tests/**/*.test.cjs"},"dependencies":{"jsonwebtoken":"^9.0.0"},"gitHead":"2b48d9c360c0c805e3da867c94928558366d4f3f","_id":"@benote/sso-backend@1.3.0","_nodeVersion":"24.11.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-wZaAPEYzcwEJLNkl6msI99bPN1sdPy5TfzXZYTZq26QZblC02W638HEUsTfeTeOG7DSAEQbcI6F4/91R3OVNVQ==","shasum":"6fbbf1026e65e12ff52c11945ecc7e9fb9294dfa","tarball":"https://registry.npmjs.org/@benote/sso-backend/-/sso-backend-1.3.0.tgz","fileCount":7,"unpackedSize":5930,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC74HEcPu9PxxgWrSFGzdcaa8+YOMVi1nemFZjes+R34wIgWOCsKmcgJL+b6Q/i9ipApXeQvyQGnMbbUNHFue5Esn4="}]},"_npmUser":{"name":"latitibabu","email":"latitibabu2018@gmail.com"},"directories":{},"maintainers":[{"name":"latitibabu","email":"latitibabu2018@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sso-backend_1.3.0_1772197600336_0.43665955611938534"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-29T11:50:57.615Z","modified":"2026-02-27T13:06:40.638Z","1.0.0":"2026-01-29T11:50:57.888Z","1.1.0":"2026-01-29T11:56:42.501Z","1.1.1":"2026-01-29T12:04:40.992Z","1.3.0":"2026-02-27T13:06:40.487Z"},"description":"Backend SSO logic for Benote ecosystem","maintainers":[{"name":"latitibabu","email":"latitibabu2018@gmail.com"}],"readme":"# @benote/sso-backend\r\n\r\nBackend SSO token generation for any JavaScript project.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @benote/sso-backend\r\n```\r\n\r\n## Tests\r\n\r\n```bash\r\nnpm test\r\n```\r\n\r\nTest files live in `backend/tests`.\r\n\r\n## CommonJS Usage\r\n\r\n```javascript\r\nconst ssoService = require(\"@benote/sso-backend\");\r\n\r\nconst token = ssoService.generateToken(\r\n  user,\r\n  accessControls,\r\n  \"external-platform\",\r\n  process.env.SSO_SHARED_SECRET\r\n);\r\n```\r\n\r\n## ESM Usage\r\n\r\n```javascript\r\nimport ssoService, { generateToken } from \"@benote/sso-backend\";\r\n\r\nconst tokenA = ssoService.generateToken(user, [], \"external-platform\", secret);\r\nconst tokenB = generateToken(user, [], \"external-platform\", secret);\r\n```\r\n\r\n## API\r\n\r\n### `generateToken(user, accessControls, audience, secret, issuer?, options?)`\r\n\r\n- Validates required input (`user`, `audience`, `secret`, `user.id/sub`)\r\n- Signs HS256 JWT with issuer/audience/subject\r\n- Adds `jti` and short TTL by default\r\n\r\n`options` supports `expiresIn` and overrides default TTL behavior.\r\n","readmeFilename":"README.md"}