Google is committed to advancing racial equity for Black communities. See how.

نحوه مدیریت تغییر مسیرها

برخی از زبانهای برنامه نویسی دارای پیاده سازی HTTP هستند که برای هدایت مجدد به مدیریت خاصی نیاز دارد.

در پاسخ به درخواست REST API ، سرور Nest API هدایت را برمی گرداند. مشتری REST تغییر مسیر را شناسایی کرده و صفحه ای را که مشتری به آن هدایت شده است درخواست می کند. برخی از پیاده سازی های HTTP سرصفحه مجوز را به URI هدایت شده هدایت نمی کنند و این منجر به خطای غیر مجاز 401 می شود.

به عنوان مثال ، فرض کنید foo.com را می خواهید. سرور foo.com با هدایت مجدد به bar.com پاسخ می دهد. پستچی یا کرل ، سرصفحه مجوز را برای فریب دادن و سپس به منع عبور می دهد. سایر پیاده سازی های HTTP ، مانند Golang و Python ، به طور خودکار سرصفحه مجوز را به URI هدایت شده منتقل نمی کنند.

چگونه کار می کند

نمودار توالی زیر نشان می دهد که هنگام رخ دادن تغییر مسیر چه اتفاقی می افتد.

توالی تغییر مسیر

برای مقایسه ، در اینجا آنچه رخ می دهد هنگامی که تغییر مسیر رخ نمی دهد.

توالی هدایت وجود ندارد

مثال

به طور کلی ، پیش بینی اینکه ممکن است پیاده سازی HTTP زبان شما از سرصفحه مجوز عبور نکند ، یک روش کدگذاری خوب است.

کد شما باید از هدایت خودکار جلوگیری کند و پس از اضافه کردن سربرگها ، تماس هدایت را برقرار کنید.

به عنوان مثال ، در Go ، می توانید این کار را انجام دهید:

customClient := http.Client {
    CheckRedirect: func(redirRequest *http.Request, via []*http.Request)
    error {
        // Go's http.DefaultClient does not forward headers when a redirect 3xx
        // response is received. Thus, the header (which in this case contains the
        // Authorization token) needs to be passed forward to the redirect
        // destinations.
        redirRequest.Header = req.Header

        // Go's http.DefaultClient allows 10 redirects before returning an
        // an error. We have mimicked this default behavior.s
        if len(via) >= 10 {
            return errors.New("stopped after 10 redirects")
        }
        return nil
    },
}

برای مثال های بیشتر ، به:

مکان هدایت شده را ذخیره کنید

همچنین ذخیره مکان هدایت شده بر اساس هر کاربر بهترین روش است. به عبارت دیگر ، پس از ورود کاربر و دریافت ریدایرکت ، مکان firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/ را ذخیره کرده و کلیه درخواست های بعدی را مستقیماً به این URI ارسال کنید.

ذخیره مکان هدایت شده باعث صرفه جویی در وقت و جلوگیری از بار غیر ضروری سرور می شود.

برای کسب اطلاعات بیشتر در مورد چگونگی تغییر مسیر مربوط به محدودکردن سرعت، و محدودیت سرعت داده .

با استفاده از curl برای تست API

هنگام استفاده از curl> = v7.58 ، ممکن است 401 خطای غیرمجاز از تماس با API دریافت کنید که منجر به تغییر مسیر می شود. از زمان curl v7.58 ، سرصفحه های مجوز سفارشی به URL هدایت برگشتی توسط API ارسال نمی شوند.

به حساب کاربری برای این در حلقه> = v7.58، با استفاده از --location-trusted پرچم با هر گونه تماس خط فرمان.