উত্তর:
রিডাইরেক্ট ইউরিতে আপনি কিছু যোগ করতে পারবেন না, ওআউথের অ্যাপ্লিকেশন সেটিংগুলিতে সেট করা ইউটি রিডাইরেক্ট ইউরি ধ্রুবক। যেমন: http://www.example.com/redirect.html
আপনার পুনঃনির্দেশিত ইউরিতে কয়েকটি প্যারামিটারগুলি পাস করার জন্য, state
ওউথ ইউআরএল কল করার আগে সেগুলি প্যারামিটারে সংরক্ষণ করুন , অনুমোদনের পরে ইউআরএল একই প্যারামিটারগুলি আপনার পুনঃনির্দেশিত ইউরিতে প্রেরণ করবে
state=THE_STATE_PARAMETERS
সুতরাং আপনার ক্ষেত্রে, এটি করুন:
/ 1। আপনার পরামিতিগুলির একটি জেসন স্ট্রিং তৈরি করুন ->
{ "a" : "b" , "c" : 1 }
/ 2। এটিকে ইউআরএল সুরক্ষিত করতে -> একটি বেস 64 ইউরাল এনকোড করুন
stateString = base64UrlEncode('{ "a" : "b" , "c" : 1 }');
এটি বেস 64৪ ইউরাল এনকোডিং এবং ডিকোডিংয়ের একটি পিএইচপি উদাহরণ ( http://en.wikedia.org/wiki/Base64#URL_applications ):
function base64UrlEncode($inputStr)
{
return strtr(base64_encode($inputStr), '+/=', '-_,');
}
function base64UrlDecode($inputStr)
{
return base64_decode(strtr($inputStr, '-_,', '+/='));
}
সুতরাং এখন রাষ্ট্রটি এমন কিছু হবে: স্টেট স্ট্রিং -> অ্যাসওয়ারওয়্যারফেসসজি,
OAuth অনুমোদনের URL এ এই অবস্থাটি পাস করুন:
https://accounts.google.com/o/oauth2/auth?
client_id=21302922996.apps.googleusercontent.com&
redirect_uri=https://www.example.com/back&
scope=https://www.google.com/m8/feeds/&
response_type=token&
state=asdafwswdwefwsdg,
সার্ভারের সাইড প্রবাহের জন্য এটি টোকেনের সাথে উপস্থিত হবে: http://www.example.com/redirect.html?token=sdfwerwqerqwer&state=asdafwswdwefwsdg ,
ক্লায়েন্ট সাইড জন্য প্রবাহিত এটা অ্যাক্সেস টোকেন সহ হ্যাশ আসবে: http://www.example.com/redirect.html#access_token=portyefghsdfgdfgsdgd&state=asdafwswdwefwsdg ,
রাজ্যটি পুনরুদ্ধার করুন, বেস 64 ইউরোপ ডিকোড এটি করুন, জসন_ডেকোড করুন এবং আপনার ডেটা রয়েছে।
গুগল OAuth 2 সম্পর্কে আরও এখানে দেখুন:
state
ইউরি পুনর্নির্দেশের জন্য এবং একই সাথেCSRF
আক্রমণ প্রতিরোধ করতে আমি কীভাবে প্যারাম ব্যবহার করতে পারি ?
CSRF
আক্রমণগুলি প্রতিরোধ ) -এ বেশ কয়েকটি পরামিতি যুক্ত করার ব্যবস্থা করেছিলেন ?
আপনি। নেট এ থাকলে আপনি সেশনে প্যারামিটারগুলি সংরক্ষণ করতে পারেন
HttpContext.Current.Session[{varname}]
এবং পরামিতি ছাড়াই অনুমোদনের পৃষ্ঠায় পুনর্নির্দেশ করুন
Response.Redirect(your_uri_approved_with_no_querystring_parameters);
Session
স্টোর করা এড়ানো উচিত।
আপনি নীচের মতো url দিয়ে প্যারামিটার পুনঃনির্দেশ করতে পারেন,
আপনি যখন ইউআরএল দিয়ে প্যারামিটারটি পাস করার চেয়ে Google এর কাছ থেকে প্রতিক্রিয়া পান,
একই জন্য পিএইচপি কোড নীচে দেখুন ,
if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL) . '?r=page/view');
}
উপরের উদাহরণে r = পৃষ্ঠা / ভিউ হল প্যারামিটার যা আমি প্যারামিটারের সাথে প্রতিক্রিয়া চাই