تمدید شد! تا ۶۰ درصد تخفیف شگفت انگیز نوروزی! {{افزایش قیمت آموزشها در سال جدید}}
اطلاعات بیشتر..سلام وقت همه دوستان به خیر
من از بک اند نود جی اس و فرانت ریکت نیتیو استفاده میکنم
میخواستم زمانی که کاربر ثبت نام کرد به یوزرنیمش بطور خودکار فرضا @roocket.ir اضافه شه
username@roocket.ir
این کارو باید تو کدوم قسمت انجام بدم تو بک اند باشه یا فرانت؟؟
به اینصورت تو فرانت کاربر یوزرنیمشو وارد میکنه
<View style={styles.inputGroup}>
<Text style={styles.label}>Username</Text>
<View style={styles.inputContainer}>
<Ionicons
name="person-outline"
size={20}
color={COLORS.primary}
style={styles.inputIcon}
/>
<TextInput
style={styles.input}
placeholder="Username"
placeholderTextColor={COLORS.placeholderText}
value={username}
onChangeText={setUsername}
autoCapitalize="none"
/>
</View>
</View>```
برای انجام چنین کاری، بهترین مکان برای اضافه کردن "@roocket.ir" به نام کاربری معمولاً در بکاند هستش.
دلایل این انتخاب:
1. امنیت: انجام این فرآیند در بکاند باعث میشود که کاربر نتواند به صورت دستی تغییرات غیرمجاز در فرانت ایجاد کند.
2. یکپارچگی دادهها: زمانی که نام کاربری در بکاند تنظیم شود، تضمین میشود که قالب مشخصی در تمام درخواستهای ثبتنام رعایت شده است.
3. تسهیل مدیریت: انجام تغییرات در بکاند باعث میشود مدیریت دادهها در پایگاه داده آسانتر شود و خطاهای احتمالی در فرانت جلوگیری شود.
با این حال، میتوانید در فرانتاند این روند را برای نمایش فوری پیادهسازی کنید تا کاربر بتواند نام کاربری نهایی (به همراه @roocket.ir) را هنگام تایپ مشاهده کند و متوجه تغییرات شود. این کار باعث بهبود تجربه کاربری میشود.
راهحل ترکیبی:
متشکرم دوست عزیز
من از سمت بک اند اینکارو انجام دادم و همه چیز به درستی داره انجام میشه
الان سوالی که واسم پیش اومده اینه که اگه کاربر بیاد به صورتی دستی @
رو به یوزنیمش اضافه کنه نام کاربریش فرضا به این شکل
username@name@roocket.ir
ثبت میشه و این یخورده مشکل هس واسم الان این مشکلو به چه صورت میتونم درستش کنم؟
خیلی ممنونم ازت
سلام مجدد
اگه کاربر خودش دستی @ اضافه کنه و مثلاً بنویسه username@name@roocket.ir
، میتونی تو بکاند قبل از ذخیره، اینو چک کنی یا اصلاحش کنی.
چندتا راهکار ساده:
چک کن فقط یک @ باشه:
با یه Regex ساده میتونی مطمئن شی که نام کاربری فقط یه @ داره و حتماً به شکل username@roocket.ir
هست. اگه مشکل داشت، ارور بده. مثلاً:
const validFormat = /^[a-zA-Z0-9_.]+@roocket.ir$/;
if (!validFormat.test(username)) {
return res.status(400).json({ msg: "نام کاربری معتبر نیست!" });
}
اصلاحش کن:
اگه نام کاربری اشتباه بود، خودت درستش کن و اضافهی @ها رو حذف کن:
const sanitizedUsername = username.split("@")[0] + "@roocket.ir";
توی بکاند همیشه چک کن:
حتی اگه تو فرانت کاربر خطا نبینه، بکاند باید همیشه مطمئن شه نام کاربری درست ذخیره میشه. هیچوقت فقط به اعتبارسنجی فرانت اعتماد نکن.
خلاصه، موقع ذخیره تو دیتابیس، اول چک کن قالب درسته یا نه، اگه اشتباه بود یا اصلاحش کن یا ارور بده. اینجوری مشکلت حل میشه!
اگا بازم مشکلی داشتی حتما بگو👍
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟