آموزش جاوااسکریپت › انجمن ها › Nodejs › سوال در مورد قسمت 11
برچسب ها: authentication, Cannot set headers, passport, قسمت 11 آموزش nodejs
- این موضوع 4 پاسخ، 2 کاربر را دارد و آخرین بار در 3 سال، 11 ماه پیش بدست علی بهروزرسانی شده است.
-
نویسندهنوشتهها
-
MR.Mostafaمشارکت کننده
سلام
ضمن تشکر از زحماتتون جهت تهیه دوره:
در مورد قسمت یازده (بحث authentication) دو تا سوال داشتم:
1) اول اینکه چه لزومی داره ما از passport استفاده کنیم؟ وقتی میتونستیم همین عملیات عدم تکراری بودن رو با تابع findOne انجام بدیم. آیا passport کاری غیر از این مورد (عدم تکراری بودن اطلاعات) انجام میده؟
2) سوال دومم اینه که اگر ما بخواییم بر اساس دو فیلد این موضوع بررسی بشه که دادهای با اون اطلاعات در دیتابیس نباشه، باید چی کار کنیم؟ مثلا هم بر اساس فیلد ایمیل و هم یوزرنیم. برای این مورد هم با passport راهی هست؟ توی stack جستجو کردم، متاسفانه موردی پیدا نکردم.
ممنون میشم راهنمایی بفرمایید.MR.Mostafaمشارکت کنندهیک مشکل دیگه هم که توی این قسمت دارم اینه که وقتی فرم ثبت نام خالی submit میشه. سرور node کرش میکنه و این لاگ رو بهم نمایش میده
JavaScript123456789(node:22380) UnhandledPromiseRejectionWarning: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the clientat ServerResponse.setHeader (_http_outgoing.js:485:11)at ServerResponse.header (C:\Users\Mostafa\Desktop\reactapp-nodeJS\node_modules\express\lib\response.js:771:10)at ServerResponse.location (C:\Users\Mostafa\Desktop\reactapp-nodeJS\node_modules\express\lib\response.js:888:15)at ServerResponse.redirect (C:\Users\Mostafa\Desktop\reactapp-nodeJS\node_modules\express\lib\response.js:926:18)at C:\Users\Mostafa\Desktop\reactapp-nodeJS\app\http\controller\auth\registerController.js:26:10at processTicksAndRejections (internal/process/task_queues.js:93:5)(node:22380) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)(node:22380) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.MR.Mostafaمشارکت کنندهمشکل ارور رو متوجه شدم.
علتش این بود که کدthis.register(req, res, next);
خارج از if/else قرار داده بودید.
به خاطر همین همیشه این تابع اجرا میشد و به ارور میخورد.اون دو سوال همچنان پابرجاست.
علیمشارکت کنندهسلام وقت بخیر
دوره پروژه محور هست و احتمالا در برخی از درس ها اروری حتما وجود داره که در همون درس متوجهش نشدم و در سایر درس ها اون رو پوشش دادم و البته ارورهایی هم هستن که احتمالا متوجه اون نشدم و اینکه شما و سایر دوستان این ارورها رو اطلاع میدین واقعا ممنونم و حتما بررسی و برطرفشون می کنم.علیمشارکت کنندههیچ شرایط ثابتی برای اینکه شما برای پیاده سازی بخشی از پروژه استفاده کنین وجود نداره و میتونین با هر روشی که فکر میکنین بهتر هست و راحتر پیاده سازی میشه کار کنید.
موردی که می فرمایید با توجه به doc ماژول passport کار شده خب شما میتونید با توجه به شرایط custom کنید و اینکه چیزی که می فرمایید رو تست نکردم البته در زمان config ماژول passport داریم email رو به تنهایی fetch می کنیم که فک می کنم مشکلی به وجود نیاد اگر که بیایم بر اساس هر فیلدی که مد نظر هست passport رو اعمال کنیم. که البته شما می خواین رو password هم این چک شدن رو انجام بدین و چون از jwt استفاده می کنین باید قبلش compare رو انجام بدین. -
نویسندهنوشتهها