lz910201
@lz910201 (zhen liu)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Chrome(一部分)でbasic認証を実行したら、401を返す

問題表現

googleのブラウザ、Chormeでbasic認証のページをアクセスする時、401のエラー発生する。

例:

nodejsで作ったbasic-authのページ:

var http=require('http');
http.createServer(function(req,res){
    var au=req.headers.authorization;
    if(au == undefined){
        res.writeHead(401,{
                        'content-Type':'text/plain',
                        'WWW-Authenticate':'Basic realm="family"'
                     });
                     res.end('');
    }else{
        var str=req.headers.authorization;
        str = str.slice(6,str.length);
        console.log(str);
        var str1 =new Buffer(str,'base64').toString();
        if(str1 != "abc:321"){
            res.writeHead(401,{
                'content-Type':'text/plain',
                'WWW-Authenticate':'Basic realm="family"'
             });
             res.end('');
        }else {
            res.end("aaaaaaaaaaaaa")
        }

    }

}).listen(8888,'127.0.0.1');
console.log('server running at localhost:8888 ');

windowsのCMDで実行する:
image.png

Chromeでページをアクセス:http://localhost:8888/
結果:
image.png

FireFoxのアクセス結果:

ユーザー名とパスワードでログイン画面を正常的に出た。
image.png

まとめ

今回Windowsのchrome(最新版)でbasic認証のページをアクセスできないが、MacOSで同じバージョンのChromeで開ける。
ブラウザの設定問題か(MacOSのChromeの設定上の区別ない)、またはWindows 10の設定問題かな?

0

1Answer

手元のWin11+Chrome(104.0.5112.81)では掲載されたソースで正常に認証できました.
拡張機能や保存済みパスワードが影響していませんか?
※認証チャレンジでHTTP 401が返るのは正常な挙動です.どのブラウザも401レスポンスとヘッダーを受け取って認証ダイアログを表示します

余談ですが,expressならexpress-basic-authで簡単に書けます.

0Like

Your answer might help someone💌