اذهب إلى المحتوى
  • 0

ازاي احط cookie في ال response من api باستخدام next js + typescript

منتصر احمد

السؤال

دلوقتي انا بعمل facebook clone ب next js مع typescript.

طالعلي مشكله ان لما الuser بيحاول يعمل تسجيل دخول (Login) مش بعرف احط ال jwt token في cookie في ال response

image.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

مرحباً منتصر ,
أرجو أن تقوم بإرسال ملف الlogin لنتمكن من تحليل وحل مشكلتك بشكل أفضل . لكن بجميع الأحوال هذه خطوات عامة لكيف ممكن توضع jwt token في الcookies من خلال response api عندما يقوم المستخدم بتسجيل دخول .

سوف نستخدم مكتبة `cookie` لتسهيل هذه العملية.

قبل كل شيء، تأكد من تثبيت المكتبة `cookie` باستخدام الأمر التالي:

npm install cookie

بعد تثبيت المكتبة، يمكنك استخدام الكود التالي لتعيين توكن JWT في الكوكيز عند تسجيل الدخول:

import { NextApiResponse } from 'next';
import cookie from 'cookie';

// دالة تقوم بتوليد التوكن JWT بناءً على البيانات الخاصة بالمستخدم
function generateToken(user: UserData): string {
  // قم بتوليد التوكن هنا
  // ...
  return token;
}

// مثال على دالة تسجيل الدخول
export function login(req: NextApiRequest, res: NextApiResponse): void {
  // قم بإجراء عملية التوثيق هنا
  // ...

  // توليد التوكن JWT
  const token = generateToken(user);

  // تعيين الكوكيز في الاستجابة
  res.setHeader('Set-Cookie', cookie.serialize('token', token, {
    httpOnly: true,
    secure: process.env.NODE_ENV === 'production', // تحديد ما إذا كانت الكوكيز تعمل على اتصال آمن أم لا
    sameSite: 'strict', // تحديد سياسة SameSite للكوكيز
    maxAge: 3600, // تحديد وقت انتهاء صلاحية الكوكيز بالثواني
    path: '/', // تحديد المسار الذي يمكن الوصول إليه الكوكيز من خلاله
  }));

  res.status(200).json({ message: 'تم تسجيل الدخول بنجاح' });
}

 

بعد تعيين الكوكيز في الاستجابة، ستكون الكوكيز متاحة في الجانب العميل (المتصفح) ويمكن الوصول إليها من خلال `document.cookie`.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 5 دقائق مضت قال Hikmat Jaafer:

مرحباً منتصر ,
أرجو أن تقوم بإرسال ملف الlogin لنتمكن من تحليل وحل مشكلتك بشكل أفضل . لكن بجميع الأحوال هذه خطوات عامة لكيف ممكن توضع jwt token في الcookies من خلال response api عندما يقوم المستخدم بتسجيل دخول .

سوف نستخدم مكتبة `cookie` لتسهيل هذه العملية.

قبل كل شيء، تأكد من تثبيت المكتبة `cookie` باستخدام الأمر التالي:

npm install cookie

بعد تثبيت المكتبة، يمكنك استخدام الكود التالي لتعيين توكن JWT في الكوكيز عند تسجيل الدخول:

import { NextApiResponse } from 'next';
import cookie from 'cookie';

// دالة تقوم بتوليد التوكن JWT بناءً على البيانات الخاصة بالمستخدم
function generateToken(user: UserData): string {
  // قم بتوليد التوكن هنا
  // ...
  return token;
}

// مثال على دالة تسجيل الدخول
export function login(req: NextApiRequest, res: NextApiResponse): void {
  // قم بإجراء عملية التوثيق هنا
  // ...

  // توليد التوكن JWT
  const token = generateToken(user);

  // تعيين الكوكيز في الاستجابة
  res.setHeader('Set-Cookie', cookie.serialize('token', token, {
    httpOnly: true,
    secure: process.env.NODE_ENV === 'production', // تحديد ما إذا كانت الكوكيز تعمل على اتصال آمن أم لا
    sameSite: 'strict', // تحديد سياسة SameSite للكوكيز
    maxAge: 3600, // تحديد وقت انتهاء صلاحية الكوكيز بالثواني
    path: '/', // تحديد المسار الذي يمكن الوصول إليه الكوكيز من خلاله
  }));

  res.status(200).json({ message: 'تم تسجيل الدخول بنجاح' });
}

 

بعد تعيين الكوكيز في الاستجابة، ستكون الكوكيز متاحة في الجانب العميل (المتصفح) ويمكن الوصول إليها من خلال `document.cookie`.

تمام اخي.

 

هل image.png.1007883374b916fa4265a611168d3a71.png

القيمه 30 * 60 * 60 * 24 هنا تساوي شهر ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...