みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
前回 FileMaker 16 curl での Cookie 取得 でスレッドを立てさせていただきました。
あまり内容を理解せず記入していたので、新規に記入させていただきした。
curlを全然知らずに勉強中ですが、curlは cookie を保存しないので session を維持できないと知りました
参考URL:http://hkdnet.hatenablog.com/entry/2015/09/21/031118
FilemakerでのCURL 使用時に session を維持する方法がわかりません
◆cURLオプションの記入の仕方◆
"--show-error " &
"--dump-header $$Headers " &
"--header Content-Type:application/json " &
"--data " & $$data
※$$data は Json形式の記述を変数に格納
上記の記入をしたら、$$Headers から Set-Cookie が取得できましたが
これをどう記述・処理すれば、sessionを維持できるのでしょうか?
色々調べましたが、 次のAPIリクエスト時にヘッダに設定すればいいと
書いているサイトがありましたがその書き方などがわかりません。
どなたか違う方法でもいいので、ご教示のほどお願いできますでしょうか。
何卒宜しくお願いいたします。
Offline
HTTPで一般的に言うセッションは単純な仕組みで、
サーバーとクライアント間で何らかのキーを共有し、
それを元にサーバー側に用意したデータストアを特定する、という程度のものです。
cookie云々は、そのキーの送受信と永続化にcookieを使っている、というだけです。
元々HTTPの通信はステートレスでセッションなんて仕組みはありませんし、
cURLがcookieを保存しないからセッション維持できない、というのは少しずれています。
cookieを使ってキーを毎度送受信しなければセッションが切れるのはブラウザでも同様で、
ブラウザは単にcookieを自動送受信してくれてるだけです。
もう一つの質問の方に書きましたが、セッションを維持したければ、
セッション開始時に取得したキーを -b か -h で指定してリクエストします。
今時少ないとは思いますが、サーバー側の実装でセッションキーが毎回変わるなら、
そのたびに毎回レスポンスからcookieを取り、リクエストにそれを指定します。
注意すべきは、サーバー側がザルな実装で、
GETでクエリストリングとしてセッションキーを送れてしまう場合でも、
必ずcookieで渡すようにしなければ、セッションハイジャックが起こり得ます。
FileMakerのcurlでそのまま参考になりそうな解説は見当たりませんでしたが、とりあえずこの辺でしょうか。
curlコマンドにセッションID(cookie)を指定する方法 · atwata developer blog
http://blog.atwata.com/web/2017/02/08/c … ookie.html
"PHPSSID"はサーバー側がPHPの場合の標準のセッションIDのキー名なので、
サーバー側の実装次第で変わります。
Offline
すいません返信おそくなりまして、ご丁寧にありがとうございます
こちらでも調べたところ海外サイトに
--cookie-jarで取得してグローバル変数に格納、それを --cookieで送信すると
うまくいきました。
Offline
[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 554.7 KiB (Peak: 582.04 KiB) ]