DX_Auth

DX_Auth

Сообщение X-Miller-X » 12 дек 2012, 22:57

Есть ли версия dx_auth для CI 2.0.2?
X-Miller-X
 
Сообщения: 40
Зарегистрирован: 02 окт 2012, 16:13

Re: DX_Auth

Сообщение michail1982 » 12 дек 2012, 23:06

https://github.com/eyoosuf/DX-Auth
DX Auth is tested in CI 2.1
Аватара пользователя
michail1982
 
Сообщения: 831
Зарегистрирован: 25 ноя 2008, 15:36

Re: DX_Auth

Сообщение X-Miller-X » 12 дек 2012, 23:22

Спасибо большое)
X-Miller-X
 
Сообщения: 40
Зарегистрирован: 02 окт 2012, 16:13

Re: DX_Auth

Сообщение X-Miller-X » 25 янв 2013, 09:29

скажите, пожалуйста, почему не входит ... http://vse-shpory.ru/auth в чем может быть проблема?
X-Miller-X
 
Сообщения: 40
Зарегистрирован: 02 окт 2012, 16:13

Re: DX_Auth

Сообщение kuber » 25 янв 2013, 09:53

X-Miller-X писал(а):скажите, пожалуйста, почему не входит ... http://vse-shpory.ru/auth в чем может быть проблема?

А логин и пароль какие?
kuber
Модератор
 
Сообщения: 3864
Зарегистрирован: 03 дек 2010, 12:02

Re: DX_Auth

Сообщение X-Miller-X » 25 янв 2013, 10:02

x-miller-x gfhjkm
X-Miller-X
 
Сообщения: 40
Зарегистрирован: 02 окт 2012, 16:13

Re: DX_Auth

Сообщение kuber » 25 янв 2013, 10:05

X-Miller-X писал(а):x-miller-x gfhjkm

Могу посмотреть. Если согласны, то пришлите учетные данные для доступа по FTP в личку.
kuber
Модератор
 
Сообщения: 3864
Зарегистрирован: 03 дек 2010, 12:02

Re: DX_Auth

Сообщение Ljubin » 30 авг 2014, 20:38

Как заставить DX_Auth при подтверждении регистрации принимать URL c кирилическими символами(имя-Олег)?
Пр. http://www.freelancer.ck.ua/auth/activate/Олег/b340b7f67b62fc380c9f448576b027b5

Ибо ошибку выдаёт - An Error Was Encountered
The URI you submitted has disallowed characters.
Ljubin
 
Сообщения: 43
Зарегистрирован: 07 ноя 2012, 16:42

Re: DX_Auth

Сообщение Артем » 31 авг 2014, 12:31

Не в DX_Auth дело.

В конфиге добавьте русские буквы в параметр permitted_uri_chars
Артем
Администратор
 
Сообщения: 2374
Зарегистрирован: 06 мар 2010, 15:58

Re: DX_Auth

Сообщение Ljubin » 31 авг 2014, 16:02

Артем писал(а):Не в DX_Auth дело.

В конфиге добавьте русские буквы в параметр permitted_uri_chars

Не помогло!?
Было вот так - $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
Сделал так - $config['permitted_uri_chars'] = 'а-яa-z 0-9~%.:_\-';
Ljubin
 
Сообщения: 43
Зарегистрирован: 07 ноя 2012, 16:42

Re: DX_Auth

Сообщение Ljubin » 31 авг 2014, 16:10

Я тут статью нашёл - http://habrahabr.ru/post/17640/

Вот цитата из неё:
Почему встает проблема с русскими буквами? Потому что, как вы знаете, русские буквы в URL использовать нельзя, их необходимо как-то передать при помощи доступных латинских букв, цифр и знаков, допустимых в URL после знака '?'.
Люди договорились, что будут делать это при помощи escape-последовательностей.
escape последовательность слова «привет» в кодировке windows-1251:
%EF%F0%E8%E2%E5%F2
escape последовательность слова «привет» в кодировке UTF-8:
%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82


Это, я вообще правильно ищу :?:
Или permitted_uri_chars это и делает :?:
Ljubin
 
Сообщения: 43
Зарегистрирован: 07 ноя 2012, 16:42

Re: DX_Auth

Сообщение Артем » 31 авг 2014, 19:14

Артем
Администратор
 
Сообщения: 2374
Зарегистрирован: 06 мар 2010, 15:58

Re: DX_Auth

Сообщение Ljubin » 01 сен 2014, 13:51

Выполнив пункты 1,2,3,4 как сказано здесь - http://code-igniter.ru/wiki/%D0%A0%D1%8 ... %D0%B2_URL
Результат - загружается только 'Главная страница' :!: :?:
Все остальные ссылки выдают ошибку - The URI you submitted has disallowed characters.
Убрал файл MY_URI - Всё заработало, как было до...

В файл - URI.php->__filter_uri($str);
добавил ключ - U (пробовал и с ним и без...)

Внёс изменения в DX_Auth->register();
закодировал имя -
Код: Выделить всё
$encode_username = rawurlencode($new_user['username']); 

которое подставляется в ссылку для акивации -
Код: Выделить всё
$new_user['activate_url'] = site_url($this->ci->config->item('DX_activate_uri')."{$encode_username}/{$new_user['activation_key']}"); 

Результат - получил "на почту" ссылку - http://www.freelancer.ck.ua/auth/activate/%CE%EB%E5%E3/353f6d4368646a54342fa6c6c71b41ae
где - %CE%EB%E5%E3 имя Олег.(Она даже здесь не вся определяется как ссылка) :!: :?:

Далее надо имя раскодировать - для сверки, потому как в БД в таблицу user_temp сохранилось имя Олег.
Для этого добавил в auth.php->activate();
Раскодировку имени -
Код: Выделить всё
$username = rawurldecode($this->uri->segment(3)); 

И отправил на сверку с БД.(ну и ключ - туда же)))
Код: Выделить всё
if ($this->dx_auth->activate($username, $key))
{
.......
}

Скопировал ссылку - http://www.freelancer.ck.ua/auth/activate/%CE%EB%E5%E3/353f6d4368646a54342fa6c6c71b41ae
в адресную строку и...enter
Результат - - The URI you submitted has disallowed characters. :oops:

p.s. С латинскими буквами всё работает.
Ljubin
 
Сообщения: 43
Зарегистрирован: 07 ноя 2012, 16:42

Re: DX_Auth

Сообщение Артем » 01 сен 2014, 18:43

Ссылку кодировать не надо. Это сам браузер делает. Вам надо лишь декодировать URI, в контроллере.

Прогоните тесты по параметру конфигурации - выясните, какой именно символ не подходит. Может быть %?
Артем
Администратор
 
Сообщения: 2374
Зарегистрирован: 06 мар 2010, 15:58

Re: DX_Auth

Сообщение Артем » 02 сен 2014, 08:21

Сталкивался с такой ситуацией, но не помню, откуда достать код...

Помню как решал: а) поменял этот параметр в конфиге б) отдельно добавлял строчную и прописную буквы Ё - они почему-то оказались не в диапазоне

Естественно, UTF-8. Естественно, GNU/Linux.
Артем
Администратор
 
Сообщения: 2374
Зарегистрирован: 06 мар 2010, 15:58

Re: DX_Auth

Сообщение Ljubin » 02 сен 2014, 13:17

Ну, как бы - заработало.
Значится так.))

В config.php
сделал так
Код: Выделить всё
$config['permitted_uri_chars'] = '?a-zа-я=\s&0-9~%\.:_-'

В DX_Auth->register();
закодировал имя юзера
Код: Выделить всё
$encode_username = rawurlencode($new_user['username']);

Соответственно внёс правку в отправляемую ссылку
Код: Выделить всё
$new_user['activate_url'] = site_url($this->ci->config->item('DX_activate_uri')."{$encode_username}/{$new_user['activation_key']}");

В URI.php ->_filter_uri($str);
Добавил только кодирование url-ссылки - rawurlencode($str)
Ключ u если и ставить то "большую букву" U (но работает и без него)
Код: Выделить всё
if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|i", rawurlencode($str)))

В <head></head> сайта установил UTF-8
Код: Выделить всё
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

В корневой папке index.php ставил - в начале файла , так и пробовал без...(работает в обоих случаях)
Код: Выделить всё
setlocale(LC_ALL, 'ru_RU.UTF8'); 

Раскодироват имя юзера, действительно не надо :roll:(хотя работает и с ним)
Код: Выделить всё
$username = rawurldecode($this->uri->segment(3));


Ну, кажись ничего не забыл!?.)
Последний раз редактировалось Ljubin 03 сен 2014, 15:06, всего редактировалось 1 раз.
Ljubin
 
Сообщения: 43
Зарегистрирован: 07 ноя 2012, 16:42

Re: DX_Auth

Сообщение Артем » 03 сен 2014, 01:56

Не нравятся изменения в URI.php. ИМХО, следует подбирать параметры в строке конфига до тех пор, пока не заработает. Пробовали \% добавить в выражение?

Декодировать имя пользователя целесообразно, ИМХО, в контроллере. В вашем случае - DX_Auth.


И еще, я не вникал, но вероятно ошибка может прятаться в направлении процессов кодирования и декодирования, проверьтесь пожалуйста:

http://www.php.su/functions/?rawurlencode
http://www.php.su/functions/?rawurldecode
Артем
Администратор
 
Сообщения: 2374
Зарегистрирован: 06 мар 2010, 15:58

Re: DX_Auth

Сообщение Ljubin » 03 сен 2014, 14:49

Нет, нет... Артём всё работает!
Вот только сегодня поправил - вернул оригинальный URI.php (ведь менять что-то в нём не комефлю.)))
Скопировал в нём ту функцію _filter_uri($str);
Создал файл MY_URI.php с расширением CI_URI
Поместил в него только эту функцию и уже там добавил кодирование -rawurlencode($str);
И поставил этот файл в system/application/librarias

Вот только мне думается...Ведь всё равно Codeigniter ищет сначала файлы в system/application/librarias и если не находит, тогда в system/librarias
Поэтому, будет URL кирилический или латинский он будет обрабатыватся функцией _filter_uri($str); из MY_URI.php что в system/application/librarias
Или нет :?:

А декодирование я не делаю!? По вашему совету.)
Ведь насколко я понимаю - браузер "втихаря" сам раскодирует закодированное!?
Для того и нужна функция повторного кодирования rawurlencode($str); в MY_URI.php

p.s.Регистрировался под именем Лёня, Ёлка - ёЁ в диапазоне...)
Ljubin
 
Сообщения: 43
Зарегистрирован: 07 ноя 2012, 16:42

Re: DX_Auth

Сообщение Артем » 03 сен 2014, 17:28

Отлично :)
Артем
Администратор
 
Сообщения: 2374
Зарегистрирован: 06 мар 2010, 15:58

Re: DX_Auth

Сообщение Ljubin » 04 окт 2014, 15:29

Возникло желание добавить, относительно вышесказаного но для CI - 2.1.4
Возможно это кому-то облегчит жизнь.))
Файл URI.php находится - system/core
Файл MY_URI.php с функцией _filter_uri($str) создавать не надо и в ней кодировать - раскодированое браузером...
Но, надо закодировать имя юзера в DX_Auth/register()
И затем раскодировать auth.php/activate() - иначе не работает!?
И библиотека будет принимать кирилические символы!?
Отак...
Ljubin
 
Сообщения: 43
Зарегистрирован: 07 ноя 2012, 16:42


Вернуться в Сессии и авторизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2