• 1398/10/06

reactjs and api access :

سلام وقت بخیر دوره reactjs را کامل دیدم و واقعا لذت بردم ممنون از آموزش خوب شما سوالی داشتم و اینکه الان یک اپ دارم با ریکت جی اس و از یک api استفاده میکنه برای سرور که با نود نوشته شده تا اینجا مشکلی نیست

در قسمتهایی که بایست کاربر لاگین کنه و به موضاعات و محتوای اختصاصی خودش دسترسی داشته باشه باز هم مشکلی نیست 

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

اینم مشکل نیست ولی در اپ مورد نظر یه صفحاتی هست که عمومی هست برای همه مثلا افزودن کالا به سبد خرید و تا قبل لاگین یا رجیستر کاربر میتونه کالا رو ببینه و به صفحات دیگر بره ولی یک مشکل بنظرم هست که هر کسی به هر دلیلی آدرس api ما رو  داشته باشه  میتونه خیلی راحت به اون آدرس api وصل بشه و محتوای ما رو بخونه البته محتوا درسته عمومی هست ولی میخوام کاری کنم که فقط از اپ خودم به محتوای عمومی در api دسترسی داشته باشم و هرکسی نتونه اطلاعات رو بخونه و شاید هم در بخشی از سایت خودش استفاده کنه حالا کاری به خوب یا بد بودنش برای سئو یا چیز دیگر ندارم ولی میخواستم ببینم چطور بایست از اتصالهای بیرون از سایت جلوگیری کنم عرض کردم برای لاگین رو میدونم و فقز برای محتوای عمومی میخوام ریکوئست میده ریسپانس نگیره و بگه غیر مجاز هست. با جزییات گفتم که مطلبی جا نمونه

ممنون از راهنمایی شما

  • 1398/10/07
  • ساعت 20:10

سلام دوست من

بابت نظر خوبت متشکرم

اگه میخوای که مدیریت کنی درخواستهارو راهی به جز داشتن توکن یا چیزی شبیه بهش نیست

چون از اونجایی هم که خودت میدونی وقتی پابلیکه تمام پابلیکه.

البته تا جایی که دانش من قد میده ولی خوب هر ثانیه خیلی چیزها ساخته میشه جستجو کن چیزی پیدا کردی منم در جریان بذار


  • 1398/10/08
  • ساعت 10:44

سلام وقت بخیر به اینا رسیدم ولی بنظرم یکم پیچیده اومد ولی بهرحال:

منبع: https://github.com/axios/axios

// `withCredentials` indicates whether or not cross-site Access-Control requests
  // should be made using credentials
  withCredentials: false, // default

 //  `adapter` allows custom handling of requests which makes testing easier.
  // Return a promise and supply a valid response (see lib/adapters/README.md).
  adapter: function (config) {
    /* ... */
  },

  // `auth` indicates that HTTP Basic auth should be used, and supplies credentials.
  // This will set an `Authorization` header, overwriting any existing
  // `Authorization` custom headers you have set using `headers`.
  // Please note that only HTTP Basic auth is configurable through this parameter.
  // For Bearer tokens and such, use `Authorization` custom headers instead.
  auth: {
    username: 'janedoe',
    password: 's00pers3cret'
  },

  // `responseType` indicates the type of data that the server will respond with
  // options are: 'arraybuffer', 'document', 'json', 'text', 'stream'
  //   browser only: 'blob'
  responseType: 'json', // default

  // `responseEncoding` indicates encoding to use for decoding responses
  // Note: Ignored for `responseType` of 'stream' or client-side requests
  responseEncoding: 'utf8', // default

  // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token
  xsrfCookieName: 'XSRF-TOKEN', // default

  // `xsrfHeaderName` is the name of the http header that carries the xsrf token value
  xsrfHeaderName: 'X-XSRF-TOKEN', // default