是否有節點原生的方式來解析基本認證?NodeJS原生基本認證
步驟將是:
- 查找認證頭
- 解析編碼值
- 記號化在結腸和返回用戶名/密碼
- 也許友好的錯誤處理/消息上失敗
不尋找Connect/Express框架解決方案。
我意識到這是非常微不足道的手工,但它有一個標準的方式來實現這一點,而不需要重新發明輪子是很好的。
是否有節點原生的方式來解析基本認證?NodeJS原生基本認證
步驟將是:
不尋找Connect/Express框架解決方案。
我意識到這是非常微不足道的手工,但它有一個標準的方式來實現這一點,而不需要重新發明輪子是很好的。
所以HTTP認證有一個令人困惑的事情。當你有這樣的https://user:[email protected]', that will parse just fine with
url.parse`憑據網址:
url.parse('https://user:[email protected]')
{ protocol: 'https:',
slashes: true,
auth: 'user:password',
host: 'example.com',
port: null,
hostname: 'example.com',
hash: null,
search: null,
query: null,
pathname: '/',
path: '/',
href: 'https://user:[email protected]/' }
注意它url.parse(theUrl).auth
不url.parse(theUrl).query.auth
你有。
但是,那就是URL本身,就是那個字符串。如果您告訴HTTP庫實際請求該URL,則憑證會被轉換爲HTTP請求標頭,就像URL的其餘部分(如主機,路徑,端口等)都被轉換爲請求的細節並在HTTP請求標頭和正文本身完整的URL無處可查,因爲它分佈在TCP和HTTP層。
說你需要查看請求標題:req.headers.authorization
這是一個很長的路要走。 url.parse
查看一個簡單的URL字符串,並且您在服務器上擁有的是實際的http.ClientRequest
實例。
好吧,我在回答後完全改變了這個問題。 :-)但是,如果你排除npm模塊apriori,你的問題基本上是在這個目錄下的grep:https://github.com/joyent/node/tree/master/lib。我認爲答案是「不完全,但你可以很容易地建立你所需要的東西」,但只需克隆回購和搜索。 –