محمود زیوری
3 سال پیش توسط محمود زیوری مطرح شد
4 پاسخ

مشکل در نمایش صفحه کاربری بدون لاگین

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


ثبت پرسش جدید
اکبر سلحشور
تخصص : طراح سایت
@akbarsalahshour3230 3 سال پیش آپدیت شد
1

سلام وقت بخیر
مشکل از کش سایتته!!
درخواست احراز هویت رو ب صورت php پاس دادی(یعنی طرف به صفحه لاگین میره که درخواست post رو فرستادی) و این باعث میشه سرور فکر کنه صفحه و اطلاعات داخلش ثابته و اطلاعات اخرین فرد کش میشه مگه اینکه طرف قبل بستن صفحه خروج بزنه!!
یا از پکیج های فریمورکی ک مینویسی استفاده کن یا اینکه اول کار auth رو بصورت ایجکس چک کن که اگه توکن ذخیره شده در مرورگر کاربر با اطلاعات سرور همخانی نداره logout بشه!!


محمود زیوری
تخصص : برنامه نویس
@zivari.ts 3 سال پیش مطرح شد
0

خیلی ممنون از پاسختون.توکن رو از طریق خودت نود ذخیره کنم یا jquery?


محمود زیوری
تخصص : برنامه نویس
@zivari.ts 3 سال پیش مطرح شد
0

اومدم از طریق ایجکس درخواست لاگین زدم و بعد احراز کوکی رو از سمت سرور ست کردم و موقع ارسال هر درخواست کوکی جدول رو با کوکی مرورگر چک میکنم اگه اوکی بود اجازه بده در غیر این صورت لاگ اوت بزنه و فعلا داره کار میکنه.توکن رو هم تو قسمت passport.use بعد از چک کردن پسورد ذخیره ش میکنم
از سمتی کارفرما قبل از اعمال این تغییرات گفت که من وقتی یوزر و پس رو میزنم صفحه کاربری شخص دیگه ای باز میشه.این تغییراتی که انجام دادم جلوش رو میتونه بگیره؟راهی هست که کلا کش iis غیرفعال بشه؟

router.post('/login2', (req, res, next)=> {

    passport.authenticate(strategy, {
        successRedirect: '/login_done',
        failureRedirect: '/login_failed',
        failureFlash: true
    })(req, res, next);
})

router.get('/login_failed',function (req,resp) {
    resp.send(my_funcs.create_list(false,"نام کاربری یا رمز عبور اشتباه می باشد",[]))
})
router.get('/login_done',function (req,resp) {

    let q="select * from persons where id={id};"
    q = stringformat(q, {
        id:req.user.id
    })

    sql_query.exec(q,true, function (error,res) {

        if (error) {
            resp.send(my_funcs.create_list(true,"خطا در دریافت توکن",[]))
            return
        }
        if (res.length!=1)
            resp.send(my_funcs.create_list(false,"خطا در دریافت توکن یکتا",[]))
        else{
            resp.cookie('token', res[0].token)
            resp.send(my_funcs.create_list(true,"خوش آمدید",{token:res[0].tak}))
        }

    })

})

محمود زیوری
تخصص : برنامه نویس
@zivari.ts 3 سال پیش مطرح شد
0

بازم هم این مشکل پابرجاس😔


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام