node.js(Hapiフレームワークを使用しています)では、私のアプリがユーザーアカウントを読むことを許可するためのリンクを作成しています。 Googleはそのリクエストを処理し、権限を与えるかどうか尋ねます。それから、GETパラメータをレスポンスコードとして私のサーバにリダイレクトします。ここに問題があります。リダイレクト後にChromeがクッキーを送信しない
Google ChromeはセッションIDでCookieを送信していません。
クッキーをCookie編集拡張のセッションクッキーとしてマークすると、それが送信されます。 PHPでも同じ動作ですが、セッションを作成するときにセッションとしてcookieをマークするので問題ありません。私はプラグインhapi-auth-cookieを使用しています。セッションを作成し、それに関するすべてを処理します。また、hapi-auth-cookieの設定で、HttpOnlyではないことをマークしています。これは、PHPセッションCookieを検査してnode.jsで検索したときに気づいた最初の違いでした。私はそれぞれのリダイレクトでレスポンス401が不足しています。私がアドレスバーにカーソルを置いてEnterキーを押すと、すべて正常に動作するので、リダイレクトの問題です。
私の質問は基本的には、その動作を引き起こしている可能性があります。一方、私はfirefoxが何の問題もなく各リクエストの後にクッキーを送信することを言及する必要があります。リダイレクト後
ヘッダ(セッションとクッキーなし):アドレスバーに入力して打った後
{
"host": "localhost:3000",
"connection": "keep-alive",
"cache-control": "max-age=0",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
"x-client-data": "CJS2eQHIprbJAQjEtskECKmdygE=",
"x-chrome-connected": "id=110052060380026604986,mode=0,enable_account_consistency=false",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"accept-encoding": "gzip, deflate, sdch, br",
"accept-language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4"
}
ヘッダ(正常に動作するかを):
{
"host": "localhost:3000",
"connection": "keep-alive",
"cache-control": "max-age=0",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"accept-encoding": "gzip, deflate, sdch, br",
"accept-language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4",
"cookie": "SESSID=very_long_string"
}
リダイレクトのコードを示してください。チェックする2つのこと:サイトのどこからでも見ることができるように、セッションクッキーにrootpathを設定していますか?リダイレクトは、Cookieが設定されているページとまったく同じドメイン/ポート/プロトコルになっていますか? – jfriend00
はい、cookieにはpath:/があり、すべてのルートで正常に動作します。ユーザーヒットが許可された後、Googleが自分のサイトにリダイレクトするので、そのコードはありません。私はアドレスバーで入力してからクッキーを送ることができるので、理論的には大丈夫です。 Googleクロムは、Googleから のhttp:// localhost:3000/api?code = code_from_google' にリダイレクトした後にクッキーを送信していませんが、リンクをコピーして貼り付けても動作します。 –