Socket
Socket
Sign inDemoInstall

couchdb-generate-session-id

Package Overview
Dependencies
19
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.3 to 2.0.0

.nyc_output/2500.json

11

index.js

@@ -6,8 +6,11 @@ module.exports = generateSessionId

var base64url = require('base64url')
var validate = require('aproba')
function generateSessionId (options) {
var timestamp = options.timestamp.toString(16).toUpperCase()
var sessionData = options.username + ':' + timestamp
var hmac = crypto.createHmac('sha1', options.salt + options.secret).update(sessionData)
function generateSessionId (username, usersalt, serversecret, timestamp) {
validate('SSSN', arguments)
var timestamp16 = timestamp.toString(16).toUpperCase()
var sessionData = username + ':' + timestamp16
var hmac = crypto.createHmac('sha1', usersalt + serversecret).update(sessionData)
return base64url(Buffer.concat([

@@ -14,0 +17,0 @@ new Buffer(sessionData + ':'),

@@ -33,5 +33,6 @@ {

"dependencies": {
"aproba": "^1.0.1",
"base64url": "^1.0.5"
},
"version": "1.0.3"
"version": "2.0.0"
}

@@ -15,11 +15,11 @@ # couchdb-generate-session-id

var sessionId = generateSessionId({
username: 'pat',
salt: '24eb90e9e1343977b8323857287ffca4',
secret: '78875068a1979fb910d5d8f37d316aa4'
timestamp: 1449689785
})
var sessionId = generateSessionId(
'pat',
'24eb90e9e1343977b8323857287ffca4',
'78875068a1979fb910d5d8f37d316aa4',
1449689785
)
```
## Options
## Arguments

@@ -40,3 +40,3 @@ <table>

<tr>
<th align="left"><strong>salt</strong></th>
<th align="left"><strong>usersalt</strong></th>
<td>String</td>

@@ -46,3 +46,3 @@ <td><code>salt</code> property of <code>\_users</code> doc</td>

<tr>
<th align="left"><strong>secret</strong></th>
<th align="left"><strong>serversecret</strong></th>
<td>String</td>

@@ -49,0 +49,0 @@ <td><code>couch_httpd_auth.secret</code> of CouchDB configuration</td>

@@ -5,11 +5,10 @@ var test = require('tap').test

test('valid options', function (t) {
var options = {
username: 'jan',
timestamp: 1449689785,
salt: '4ed13457964f05535fbb54c0e9f77a83',
secret: 'd5513283df4f649c72757a91aa30bdde'
}
test('valid arguments', function (t) {
var expected = 'amFuOjU2Njg4MkI5OkEK3-1SRseo6yNRHfk-mmk6zOxm'
var result = generateSessionId(options)
var result = generateSessionId(
'jan',
'4ed13457964f05535fbb54c0e9f77a83',
'd5513283df4f649c72757a91aa30bdde',
1449689785
)

@@ -20,1 +19,17 @@ t.is(result, expected, 'returns expected result')

})
test('invalid arguments', function (t) {
t.throws(generateSessionId, {code: 'EMISSINGARG'}, 'missing arguments')
t.throws(generateSessionId.bind(null, '1', '2', '3', 4, 5), {code: 'ETOOMANYARGS'}, 'too many arguments')
t.test('types', function (tt) {
tt.throws(generateSessionId.bind(null, 1, '2', '3', 4), {code: 'EINVALIDTYPE'})
tt.throws(generateSessionId.bind(null, '1', 2, '3', 4), {code: 'EINVALIDTYPE'})
tt.throws(generateSessionId.bind(null, '1', '2', 3, 4), {code: 'EINVALIDTYPE'})
tt.throws(generateSessionId.bind(null, '1', '2', '3', '4'), {code: 'EINVALIDTYPE'})
tt.end()
})
t.end()
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc