私はphpに古いシステムを持っているので、Expressフレームワークを使用してNode.jsで新しいシステムを作成しています。Node.jsサイトのある場所で、phpサイトにログインする必要があります(サイトは同じ資格情報を使用します)。
基本的に、mi ビュー (Express) のどこかにボタンがあり、それを押すと、どこかからユーザー資格情報を取得し、この資格情報を使用して (フォームなしで) php サイトにログインし、既にログインしている php システムにリダイレクトする必要があります。ブラウザで。
私はこの答えに従おうとしています
したがって、ボタンが押されたときに実行されるコードは次のとおりです。
app.post('/loginphp', function(req, res) {
var data = request.post(
'http://somesite.somedomain.com/Users/login', {
form:{
'data[User][email]': 'someuser@somedomain.com',
'data[User][pass]' : 'somepassword'
}
}, function(error, response, body) {
var sessionCookie = response.headers['set-cookie'][response.headers['set-cookie'].length - 1];
sessionCookie = sessionCookie.split(';');
sessionCookie = sessionCookie[0];
// trying with this way the same results
/*
res.set({'Cookie' : sessionCookie}).
redirect('http://somesite.somedomain.com/Users');
*/
// and same results too in this one
/*
res.setHeader('Cookie', sessionCookie).
redirect('http://somesite.somedomain.com/Users');
*/
res.header('Cookie', sessionCookie)
.redirect('http://somesite.somedomain.com/Users');
//the output shows the cookie is saved just fine on headers
/*console.log(res.header());*/
// Doing this!!! -> WORKS!! , but i need be on the browser not here.
/*
request.get('http://somesite.somedomain.com/Users', {
headers: {"Cookie" : sessionCookie},
}, function (error, response, body) {
if(response.statusCode == 200) {
console.log(body);
}
});
*/
});
});
(request.get から) コードの最後のコメント部分のコメントを外します。これがうまく機能し、ログインしている Web サイト ユーザーのホームページの HTML (本文) を出力していることがわかりますが、ヘッダーに Cookie を設定してリダイレクトしようとするとブラウザでログインするためにサイトにアクセスすると、これは機能しません
この方法でこれを行うことは可能ですか?
何か足りない?
前もって感謝します。