PDA

View Full Version : صفحه لاگین با تورنادو



saeed7474
شنبه 11 بهمن 1393, 06:51 صبح
سلام
وقتتون بخیر
چطور یک صفحه ورود و احراز هویت با استفاده از تورنادو ایجاد کنم
و همچنین در اختیار داشتن سشن ها

n.nowroozi
شنبه 11 بهمن 1393, 07:21 صبح
توی داکیومنتش مثال گذاشته واسه authentication :
http://tornado.readthedocs.org/en/latest/guide/security.html#user-authentication

ولی حواستون باشه که توی تورنادو باید کلیه مسائل امنیتی رو خودتون دستی بنویسید... و مثل جنگو نیست که همه چیز رو خودش هندل کنه.

saeed7474
یک شنبه 12 بهمن 1393, 08:25 صبح
با سشن بهتره
این رو می تونید توضیح بدین
https://github.com/diogobaeder/pycket

بنده که هرچی میرم کار نمی کنه

n.nowroozi
یک شنبه 12 بهمن 1393, 13:00 عصر
memcache رو استفاده کردی یا redis ؟‌
کدت رو بزار با اروری که میگیری

saeed7474
یک شنبه 12 بهمن 1393, 14:55 عصر
از redis

کد زیر در هندلر :


class login(tornado.web.RequestHandler):
def get(self):
login1 = loginuser.select()
self.render('login\index.html',login=login1)

def post(self):
login1=loginuser.select().where(loginuser.id==id)#
user=self.get_argument('user')
if login1.user==user:
session = SessionManager(self)
session.set('login',login.user)
k = session.get('login')
self.redirect('/admin')
else:
self.redirect('/login')

که این ارور رو میده
in post
if login1.user==user:
AttributeError: 'SelectQuery' object has no attribute 'user'
هم فکر کنم از دیتابیس درست انتخاب نمیشه هم
یوزر از که در لاگین باکس زده میشه توسط
user=self.get_argument('user')
گرفته نمیشه
:متفکر:
کد زیر هم در صفحات برای بررسی سشن :


if session.get('login')==loginuser.user :
self.render('new.html')
else:
self.redirect('/login')


که البته فکر کنم اشتباه نوشتم
شما هم یه بررسی بکنید

n.nowroozi
یک شنبه 12 بهمن 1393, 15:30 عصر
کد رو کامل بزارید لطفا .. الان loginuser اصلا معلوم نیست از کجا اومده !
آبجکتی که ساختید یوزر نداره تهش یه dir اضافه کنید ببینید چه چیزهایی داره:

login1=loginuser.select().where(loginuser.id==id)
print dir(login1)

saeed7474
یک شنبه 12 بهمن 1393, 16:34 عصر
میشه خودتون کد اصلاح شده بدین
لاگین یوزر اسم جدول شامل یوزر و پسورده

فرم هم که یوزر و پسورد میاد
<form action="/login" method="post">
<input name="user" type="user" id="user" placeholder="username" required>
..

چرا داره! شاید تو سلکتش اشتباه کردم ؟
login1=loginuser.select().where(loginuser.id==id)

n.nowroozi
دوشنبه 13 بهمن 1393, 07:32 صبح
نه متاسفانه وقتش رو ندارم.
خروجی دستوری که گفتم رو نگذاشتی، بعد گفتم
loginuser تعریفش مسخص نیست نه login1.

saeed7474
دوشنبه 13 بهمن 1393, 11:00 صبح
گفتم اسم جدوله
شما کد انتخاب یه یوزر از دیتابیس رو بگید که مقایسه کنه با یوزر داده شده کافیه

saeed7474
دوشنبه 13 بهمن 1393, 11:49 صبح
درست شد.
if loginuser.get(loginuser.id == 1).user==user1: