From 0788b93350477d01e81f09be7e7406fd39867493 Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Sat, 4 Mar 2017 01:38:32 -0800 Subject: [PATCH] Simplify implementation of auth header parsing --- lib/auth.coffee | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/lib/auth.coffee b/lib/auth.coffee index 1089cb8..5719207 100644 --- a/lib/auth.coffee +++ b/lib/auth.coffee @@ -19,18 +19,10 @@ crypto = require 'crypto' exports.parseAuthHeader = (authHeader) -> - res = {} - i = authHeader.indexOf(' ') - res['method'] = authHeader.slice(0, i) - - options = authHeader.slice(i + 1) - regex = /([a-z]+)="([a-zA-Z0-9\/\.@\-\+,= ]+)"/g - while (r = regex.exec(options)) != null - res[r[1]] = r[2] - - regex = /([a-z]+)=([a-zA-Z0-9\/\.@\-\+]+)/g - while (r = regex.exec(options)) != null - res[r[1]] = r[2] + res = {method: authHeader.slice(0, authHeader.indexOf(' '))} + re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi + while match = re.exec(authHeader) + res[match[1]] = match[2] or match[3] return res