ఒక PHP అప్లికేషన్ Alice మరియు Bob లకు సేవ చేస్తుంది, మరియు ఇద్దరూ దాని సర్వర్-సైడ్ cURL క్లయింట్ను ఉపయోగించి ప్రాక్సీ ద్వారా అదే రిమోట్ వెబ్సైట్కు చేరుకుంటారు. ప్రతి అభ్యర్థన cookies.txt లోడ్ చేస్తే, ఇద్దరు వినియోగదారులు ఒకే రిమోట్ లాగిన్ను వారసత్వంగా పొందవచ్చు. వారి ప్రాక్సీ చిరునామాలను మార్చడం ఆ ఫైల్ను వేరు చేయదు.

ఫైల్ పేరును ఎంచుకునే ముందు కుకీ యజమానిని ఎంచుకోండి. సాధారణంగా అది అప్లికేషన్ యొక్క తార్కిక రిమోట్ సెషన్: స్థానిక వినియోగదారు, నిర్దిష్ట రిమోట్ ఖాతా మరియు అవసరమైనప్పుడు ప్రత్యేక వర్క్స్పేస్. ప్రాక్సీ ఎండ్పాయింట్ ఒక రూటింగ్ ఎంపిక, విశ్వసనీయ సెషన్ గుర్తింపు కాదు. అనేక మంది వినియోగదారులు ఒక ఎండ్పాయింట్ను పంచుకోవచ్చు, మరియు ఎండ్పాయింట్ నిష్క్రమణలను మార్చవచ్చు.

అదే సెషన్ జార్ను లోడ్ చేసి సేవ్ చేయండి

అప్లికేషన్ తన ప్రామాణీకృత సెషన్ను సర్వర్ సృష్టించిన ఫైల్ కీకి మ్యాప్ చేయనివ్వండి. ప్రైవేట్ కుకీ డైరెక్టరీ మరియు విశ్వసనీయ $sessionKey తో, cURL కాన్ఫిగరేషన్ ఈ రూపాన్ని కలిగి ఉంటుంది:

$jar = $cookieDirectory . '/' . $sessionKey . '.cookies';

$ch = curl_init('https://service.example.net/account');
curl_setopt_array($ch, [
    CURLOPT_PROXY => 'http://proxy.example.net:8080',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_COOKIEFILE => $jar,
    CURLOPT_COOKIEJAR => $jar,
]);

ప్రజా మధ్యవర్తిని అనుమతించే నెట్వర్క్లో అనుమతించబడిన ప్రజా సైట్ సెషన్ పరీక్ష కోసం, HTTP ప్రాక్సీ జాబితా అభ్యర్థి ఎండ్పాయింట్లను అందిస్తుంది. కాన్ఫిగర్ చేసిన ప్రాక్సీ ప్రామాణీకరణ లేదా నిల్వ చేసిన ప్రాక్సీ ఆధారాలు లేని హ్యాండిల్ను ఉపయోగించండి, మరియు కుకీ స్థితిని దాని ఉద్దేశించిన సెషన్కు కేటాయించినట్లు ఉంచండి. ఈ భాగం హ్యాండిల్ను కాన్ఫిగర్ చేస్తుంది; అప్లికేషన్ బదిలీని నిర్వహిస్తుంది మరియు దాని సాధారణ అభ్యర్థన ప్రవాహం ద్వారా ఫలితాన్ని తనిఖీ చేస్తుంది. COOKIEFILE సెషన్ యొక్క మునుపటి కుకీలను లోడ్ చేస్తుంది. COOKIEJAR హ్యాండిల్ తన నిల్వ చేసిన కుకీలను ఎక్కడ రాస్తుందో ఎంచుకుంటుంది. అవుట్పుట్ ఫైల్ను మాత్రమే సెట్ చేయడం మునుపటి లాగిన్ను లోడ్ చేయదు.

కొత్త సెషన్ ఫైల్ లేకుండా ప్రారంభమవుతుంది. దాని మొదటి బదిలీకి ఉద్దేశించిన జార్ మార్గాన్ని ఇవ్వండి, వెబ్సైట్ కుకీలను స్థాపించనివ్వండి, మరియు తదుపరి అభ్యర్థన కోసం ఫలిత స్థితిని సేవ్ చేయండి. కుకీ డైరెక్టరీ అప్లికేషన్ వర్కర్ ద్వారా వ్రాయగలిగి ఉండాలి మరియు బహిరంగంగా సేవ చేయబడే పత్రం చెట్టు వెలుపల ఉంచాలి. సందర్శకుడు అందించిన వినియోగదారు పేరు లేదా మార్గాన్ని ఫైల్ పేరుగా మార్చవద్దు; సర్వర్లో విశ్వసనీయ కీని వెతకండి.

సేవ్కు అభ్యర్థన జీవిత చక్రంలో స్థలం కావాలి

libcurl సాధారణంగా హ్యాండిల్ శుభ్రపరిచే సమయంలో జార్ను వ్రాస్తుంది. రిమోట్ మార్పిడి తర్వాత అప్లికేషన్కు స్పష్టమైన సేవ్ పాయింట్ కావాలంటే, అది అభ్యర్థించవచ్చు:

curl_setopt($ch, CURLOPT_COOKIELIST, 'FLUSH');

ఇది హ్యాండిల్కు ప్రస్తుతం తెలిసిన కుకీలను దాని కాన్ఫిగర్ చేసిన జార్లో వ్రాస్తుంది. ఆ సెషన్ కోసం హ్యాండిల్ వాడకాన్ని పూర్తి చేయండి, ఆపై దాన్ని సంబంధం లేని పనికి కేటాయించండి. ఇప్పటికే Alice కుకీలను కలిగి ఉన్న హ్యాండిల్పై జార్ మార్గాన్ని మాత్రమే మార్చడం Bob యొక్క శుభ్రమైన సెషన్ను సృష్టించడంతో సమానం కాదు.

విజయవంతమైన డౌన్లోడ్ మరియు విజయవంతమైన నిలకడను కూడా వేరు చేయండి. కుకీ-జార్ డాక్యుమెంటేషన్ ప్రకారం, శుభ్రపరిచే సమయంలో రాయడం విఫలమైతే అది సాధారణ బదిలీ లోపంగా తిరిగి ఇవ్వబడదు. ఒక అభ్యర్థనకు లాగిన్ పనిచేసి తదుపరి దానిలో మాయమైతే, డైరెక్టరీ యాజమాన్యం, అనుమతులు మరియు అప్లికేషన్ యొక్క డయాగ్నస్టిక్ అవుట్పుట్ను తనిఖీ చేయండి.

ఏకకాల అభ్యర్థనలు మరో సరిహద్దును తెస్తాయి. ఇద్దరు వర్కర్లు ఒకే పాత జార్ను లోడ్ చేయవచ్చు, స్వతంత్రంగా తమ మెమొరీ స్థితిని మార్చుకోవచ్చు, ఆపై వేర్వేరు ఫలితాలను సేవ్ చేయవచ్చు. రెండు అభ్యర్థనలు ఒకే రిమోట్ లాగిన్ను పంచుకుంటే, ప్రతి-సెషన్ లాక్ లేదా సమానమైన క్రమబద్ధీకరణ మొత్తం లోడ్, మార్పిడి మరియు సేవ్ క్రమాన్ని కవర్ చేయాలి; చివరి రాతను మాత్రమే లాక్ చేయడం వారి మునుపటి స్నాప్షాట్లను సమన్వయం చేయదు. వేర్వేరు సెషన్లు వేర్వేరు ఫైల్లు మరియు స్వతంత్ర లాక్లను కలిగి ఉండాలి.

లాగ్అవుట్లో, ఉద్దేశించిన రిమోట్ సెషన్ను ముగించి, అప్లికేషన్ విధానం ప్రకారం దాని స్థానిక కుకీ స్థితిని పదవీ విరమణ చేయండి. కొత్తగా ఎంపిక చేసిన ప్రాక్సీని వినియోగదారు ప్రారంభించే ఏదైనా కొత్త సెషన్కు జోడించవచ్చు, మెమొరీలో ఎవరి లాగిన్ ఉందో నిర్ణయించే బాధ్యతను ప్రాక్సీ చిరునామాకు ఇవ్వకుండా.

సంబంధిత వ్యాసాలు