私はこのようなものでエクスプレスでCookieセッション管理を行っています:
req.session.authentication = auth;
そして、私は認証されたURLを次のようなもので検証します
if(!req.session.authentication){res.send(401);}
現在、mocha、 superagent および should を使用してURLのテストを構築していますが、superagentでCookieを取得/設定する方法を見つけることができないようです。認証済みテストの前にログインを要求しようとしましたが、機能していません。
Mocha BDDスイートのbeforeステートメントでログインにリクエストを追加しようとしましたが、リクエストは不正であるとまだ言われています。ブラウザからリクエストを行う認証をテストしましたが、何かアイデアがありますか?
(プレーンな古いsuperagent
の代わりに)superagent.agent()
を使用して、リクエストに永続的なCookieを持たせます。 スーパーエージェントドキュメントのCookieの保存 またはコード例: agency.js 、 controller.test.js を参照してください。
次のコードは正常に動作するようです。
req.set( 'Cookie'、 "cookieName1 = cookieValue1; cookieName2 = cookieValue2");
CORSリクエストのCookieの送信に問題がある場合は、.withCredentials()
メソッドを使用します ここで説明
request
.get('http://localhost:4001/')
.withCredentials()
.end(function(err, res) { })
あなたが言及したので、両方を取得する必要がありますおよび Cookieを設定します:
取得する:
const request = await Superagent.get('...')
const cookie = request.header['set-cookie']
セットする:
Superagent.post('...').set('Cookie', 'cookie_info')