۴۰۴ Not Found! قیمت ها به ۴۰۳ برگشت! به مدت محدود!
بزن بریم!سلام دوستان من دنبال راهی بودم تا زمانی که کاربر شماره تماس برای ورود یا ثبت نام وارد کرد و پیامک پسورد براش ارسال شد به صورت خودکار پیامک پسورد در فیلد اینپوت وارد بشه و نیازی به وارد کردن توسط کاربر نباشه . کد زیر رو پیاده سازی کردم ولی حتی زمانی که console.log هم میگیرم توی قسمت cache ارسال میشه .
البته به این نکات هم دقت کردم :
نکته 1: فقط روی https کار میکنه پس در حالت تست فعالش کنید
نکته 2: در sms دریافتی حتما باید در آخر متن اون این فرمت اعمال بشه
@example.com #MY_CODE
نکته 3: کد رو حتما چک کنید ک نقطه یا فاصله اضافی نداشته باشه بعد ستش کنید
useEffect(() => {
const controller = new AbortController();
navigator.credentials
?.get({
otp: {transport: ['sms']},
signal: controller.signal,
} as CredentialRequestOptions & { otp: { transport: string[] } })
.then((otp: any) => {
console.log('otp : ' + otp)
console.log('otp code : ' + otp.code)
})
.catch((err) => {
console.log(err);
});
});
سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨
درخواستی که میخواهید انجام بدی ، نیاز به ارسال پیامک به تلفن همراه کاربر داره و برای این کار نیاز به استفاده از یک سیستم پیامک (مثل Twilio یا Nexmo) داری. در ادامه، یک مثال از چگونگی انجام این کار با استفاده از Twilio و Node.js میارم برات . شما میتونی این مثال را تغییر بدی و به نیازهای خود وب سایت اعمال کنی.
نصب و راهاندازی بستههای مورد نیاز:
نصب بستههای express
و twilio
از طریق npm:
npm install express twilio
ساخت یک وب سرور با Express.js:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// تنظیمات Twilio
const accountSid = 'YOUR_TWILIO_ACCOUNT_SID';
const authToken = 'YOUR_TWILIO_AUTH_TOKEN';
const client = require('twilio')(accountSid, authToken);
// صفحه ورود/ثبت نام
app.get('/', (req, res) => {
res.send('<form action="/send-otp" method="post"><input type="tel" name="phoneNumber" placeholder="شماره تماس" required><button type="submit">ارسال کد OTP</button></form>');
});
// ارسال کد OTP
app.post('/send-otp', (req, res) => {
const phoneNumber = req.body.phoneNumber;
// تولید کد OTP تصادفی
const otpCode = Math.floor(1000 + Math.random() * 9000);
// ارسال کد OTP به شماره تلفن همراه
client.messages
.create({
body: `کد تایید: ${otpCode}`,
from: 'YOUR_TWILIO_PHONE_NUMBER',
to: phoneNumber
})
.then(message => {
console.log(message.sid);
res.send('کد تایید ارسال شد.');
})
.catch(error => {
console.error(error);
res.status(500).send('مشکلی در ارسال پیامک به وجود آمده است.');
});
});
app.listen(port, () => {
console.log(`وب سرور در http://localhost:${port} اجرا شد`);
});
در این مثال، ابتدا یک وب سرور Express ایجاد شده و یک فرم برای ورود/ثبت نام تعریف کردم . وقتی که کاربر شماره تلفن همراه خود را وارد میکنه و دکمه "ارسال کد OTP" را میزنه، یک کد OTP تصادفی تولید میشه و به شماره تلفن همراه ارسال میشود.
توجه داشته باش که باید اطلاعات تنظیمات Twilio (مانند accountSid
، authToken
، و from
) را با مقادیر واقعی خودت جایگزین کنی
برای اجرای وب سرور، دستور زیر را در خط فرمان وارد کنید:
node your-server-file.js
وب سرور شما حالا باید در آدرس http://localhost:3000 قابل دسترس باشد. کاربران میتوانند شماره تلفن همراه خود را وارد کنند و کد OTP را دریافت کنند.
برای پیادهسازی نمایش کد OTP در فیلد ورودی به صورت خودکار، میتوانید با استفاده از JavaScript کدی نوشته و در صفحهی وب خود اجرا کنی
مثلاً:
// JavaScript که پیامک کد OTP را در فیلد ورودی وارد میکند
const otpInput = document.getElementById('otp-input');
otpInput.value = otpCode;
این کد JavaScript باید در صفحهی وب شما اجرا میشه و کد OTP را از پیامک دریافتی به صورت خودکار در فیلد ورودی (otp-input
) قرار میده.
مهمترین نکته این است که شما باید از یک سیستم پیامک معتبر (مانند Twilio) برای ارسال پیامکها استفاده کنی و تنظیمات مربوط به آن را در کد خود تنظیم کنی.
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟