test-hawk.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. try {
  2. require('hawk')
  3. } catch (e) {
  4. console.error('hawk must be installed to run this test.')
  5. console.error('skipping this test. please install hawk and run again if you need to test this feature.')
  6. process.exit(0)
  7. }
  8. var createServer = require('http').createServer
  9. , request = require('../index')
  10. , hawk = require('hawk')
  11. , assert = require('assert')
  12. ;
  13. var server = createServer(function (req, resp) {
  14. var getCred = function (id, callback) {
  15. assert.equal(id, 'dh37fgj492je')
  16. var credentials =
  17. { key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn'
  18. , algorithm: 'sha256'
  19. , user: 'Steve'
  20. }
  21. return callback(null, credentials)
  22. }
  23. hawk.server.authenticate(req, getCred, {}, function (err, credentials, attributes) {
  24. resp.writeHead(!err ? 200 : 401, { 'Content-Type': 'text/plain' })
  25. resp.end(!err ? 'Hello ' + credentials.user : 'Shoosh!')
  26. })
  27. })
  28. server.listen(8080, function () {
  29. var creds = {key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn', algorithm: 'sha256', id:'dh37fgj492je'}
  30. request('http://localhost:8080', {hawk:{credentials:creds}}, function (e, r, b) {
  31. assert.equal(200, r.statusCode)
  32. assert.equal(b, 'Hello Steve')
  33. server.close()
  34. })
  35. })