を使用して PHP でセッション Cookie を生成します
$cookie = random_bytes(64);
次に、この変数の値を Cookie として設定します。
setcookie('access', $cookie, time()+31536000, '/', false);
を使用して目的の値を探すとき
function getAccessToken(){
var n = document.cookie.match(/access=([^;]+)(?:$|;)/i);
if (n && n.length)
return n[1];
}
クライアント側では、私は得る
"%1D%D8%E1%3F%7E%3E%D7b%A5%04%3Bl%3A%ADB%DF%DAg%E5%1DH%0A%21%5E%15%D9%2Be8k%3A%E2%AF%CE7%F2%BF%5B%CB%14%95%CEO%28%60p%DF%FBeY%95%3C%86%B99U%B7%F1p%E0%AC%2B%C5%2F"
この値は、ユーザーを認証するために Node.js Websocket サーバーに送信されますが、クライアント側で値が既に間違っているため、接続は失敗します。PHP がこの Cookie を受け取ると、自動的にデコードされ、$_COOKIE['access']
正しく含まれています。
��?~>�b�;l:�B��g�H
!^�+e8k:���7��[���O(`p��eY�<��9U��p ��+�/
どこを見てもdecodeURI
/decodeURIComponent
とを使うように言われましescape
たが、最初のスローURIError: URI malformed
と 2 番目のスローはまったく役に立ちません。
この生の URL エンコード文字列を、クライアントまたは Node.js で実際の文字/バイトの文字列に変換するにはどうすればよいですか (どちら側でデコードするかは関係ありません)。