нужна авторизаци, аутентификаци и сеcсии примерно как на этом форуме, только на perl + MySQL
1. Подскажите где про это можно найти, в гугле не нашел, может есть статья полная?
2. Какие модули смотреть?
если "склепать" самому , то не понимаю как сделать сколько человек есть и сколько было за некоторое время! есть чтобы полностью сделать?
Авторизацию и аутентификация на Perl
Модератор: Модераторы разделов
-
- Сообщения: 526
- ОС: FreeBSD 8.0 CURRENT
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Авторизацию и аутентификация на Perl
gcc писал(а): ↑19.03.2008 01:06нужна авторизаци, аутентификаци и сеcсии примерно как на этом форуме, только на perl + MySQL
1. Подскажите где про это можно найти, в гугле не нашел, может есть статья полная?
2. Какие модули смотреть?
если "склепать" самому , то не понимаю как сделать сколько человек есть и сколько было за некоторое время! есть чтобы полностью сделать?
CGI:Session - есть такой модуль, вроде для этого он, не пробовал - ибо прийдется возится с установкой модуля этого туда где мои скрипты работают.
Если делать самому, то выглядит это примерно так. Логинится человек на сайт, при логине выдается ему какой-то sessid, который можно записать в cookies(работа с cookies в самом CGI реализована), или просто передавать в GET/POST запросах каждый раз. На стороне сервера сохраняем соответствие sessid-user_id+expirity date для конкретной сессии. Каждый раз когда у тебя спрашивают страничку, смотрим если cookie нужный, если нет - отправляем на авторизацию, если есть - смотрим есть ли он в нашей таблице соответствий, если есть - отдаем соответствующую страничку, если нет - отправляем на авторизацию. + отдельно думаем над удалением "просроченных" сессий. где-то так.
-
- Сообщения: 526
- ОС: FreeBSD 8.0 CURRENT
Re: Авторизацию и аутентификация на Perl
а если браузер закрылся, то как сделать чтобы сессия оборвалась?
UPD: вроде нашел этот модуль http://search.cpan.org/~markstos/CGI-Session-4.20/
попробую еще посмотреть форум ikonboard он на перле написан
UPD: вроде нашел этот модуль http://search.cpan.org/~markstos/CGI-Session-4.20/
попробую еще посмотреть форум ikonboard он на перле написан
-
- Сообщения: 526
- ОС: FreeBSD 8.0 CURRENT
Re: Авторизацию и аутентификация на Perl
1. Прочитал вот сдесь, делаю по этому модулю с MySQL (может и не надо было - лучше самому написать эту сессию?)
http://search.cpan.org/~markstos/CGI-Session-4.20/
а как посмотреть привязана ли сессии к конкретному юзеру (и по его айпи, если Cookies кто-то украдет ) зарегистрированому в таблице?
2. как Cookies послать браузера (если это будет на прмиер прокси-серсер) чтобы Cookies выключились когда браузер закроется (чтобы вечно не остались там)? не могу найти про это
я вот так print "Set-Cookie: session=$id; domain=.$host; path=/\n";
UPD: первое наверное вот так примерно
http://search.cpan.org/~markstos/CGI-Session-4.20/
а как посмотреть привязана ли сессии к конкретному юзеру (и по его айпи, если Cookies кто-то украдет ) зарегистрированому в таблице?
Код: Выделить всё
CREATE TABLE sessions (
id CHAR(32) NOT NULL PRIMARY KEY,
a_session TEXT NOT NULL
);
Код: Выделить всё
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(25) NOT NULL,
pass VARCHAR(25) NOT NULL,
info VARCHAR(500) NOT NULL,
PRIMARY KEY (id)
2. как Cookies послать браузера (если это будет на прмиер прокси-серсер) чтобы Cookies выключились когда браузер закроется (чтобы вечно не остались там)? не могу найти про это
я вот так print "Set-Cookie: session=$id; domain=.$host; path=/\n";
UPD: первое наверное вот так примерно
Код: Выделить всё
'SELECT t1.user,
t1.host,
t1.ip,
t1.forwarded,
t2.name
FROM session AS t1,
users AS t2
WHERE t1.session = \''.$cookies{'session'}.'\' AND
t1.user = t2.id
LIMIT 1'
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Авторизацию и аутентификация на Perl
ну чтобы привязать сессию к IP - нужно для начала этот IP сохранить где-нить. Не вижу его в твоих таблицах.
С perldoc CGI:
Код: Выделить всё
1. an expiration time
This is a time/date string (in a special GMT format) that indicates when a cookie expires. The cookie will be
saved and returned to your script until this expiration date is reached if the user exits the browser and restarts
it. If an expiration date isn’t specified, the cookie will remain active until the user quits the browser.
-
- Сообщения: 526
- ОС: FreeBSD 8.0 CURRENT
Re: Авторизацию и аутентификация на Perl
спасибо, просто делаеться!
столкнулся с проблемой что не передаються куки, и я не знаю передались ли они вообще...
http://search.cpan.org/~lds/CGI.pm-3.34/CGI/Cookie.pm
менял все - не получаеться
когда хочу получить то не определено
UPD: передал вот так:
CGI::Cookie не захотел передавать CGI.pm-3.33,1
столкнулся с проблемой что не передаються куки, и я не знаю передались ли они вообще...
http://search.cpan.org/~lds/CGI.pm-3.34/CGI/Cookie.pm
Код: Выделить всё
use CGI::Cookie;
use warnings;
use Storable;
use vars '$dbh', '%user_vars';
$cookie1 = new CGI::Cookie(-session => '$session',
-name => 'SOMENAME',
-domain => '.someserver.com',
-expires => '+3M',
);
print header(-cookie=>$cookie1);
print "Content-type: text/html\n\n"
менял все - не получаеться
Код: Выделить всё
Undefined subroutine &main::header called at ....es.pl line 188.
когда хочу получить то не определено
Код: Выделить всё
my %cookies = fetch CGI::Cookie;
# Если есть ключ сессии
if ($cookies{'session'}) {
UPD: передал вот так:
Код: Выделить всё
print "Content-type: text/html\n\n";
print << "[INFO]";
<META HTTP-EQUIV="Set-Cookie" CONTENT="session=$session;
DOMAIN=.$host; PATH=/; SECURE">
[INFO]
CGI::Cookie не захотел передавать CGI.pm-3.33,1
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Авторизацию и аутентификация на Perl
Код: Выделить всё
Undefined subroutine &main::header called at ....es.pl line 188.
делай не только use CGI::Cookie ... header просто в CGI, т.е. use CGI.
-
- Сообщения: 526
- ОС: FreeBSD 8.0 CURRENT
Re: Авторизацию и аутентификация на Perl
вот нашел
MVC (model view controller) http://search.cpan.org/~mramberg/Catalyst-...lib/Catalyst.pm
ORM (object-relational mapper) объектный реляционный картопостроитель http://search.cpan.org/~akimov/ORM-0.85/lib/ORM.pod
http://search.cpan.org/~ash/DBIx-Class-0.08010/
MVC (model view controller) http://search.cpan.org/~mramberg/Catalyst-...lib/Catalyst.pm
ORM (object-relational mapper) объектный реляционный картопостроитель http://search.cpan.org/~akimov/ORM-0.85/lib/ORM.pod
http://search.cpan.org/~ash/DBIx-Class-0.08010/