mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
Update session part in russian readme [skip ci]
This commit is contained in:
parent
a7483f48b0
commit
4443f963b4
1 changed files with 35 additions and 19 deletions
54
README.ru.md
54
README.ru.md
|
@ -42,6 +42,7 @@
|
||||||
* [Фильтры](#Фильтры)
|
* [Фильтры](#Фильтры)
|
||||||
* [Методы-помощники](#Методы-помощники)
|
* [Методы-помощники](#Методы-помощники)
|
||||||
* [Использование сессий](#Использование-сессий)
|
* [Использование сессий](#Использование-сессий)
|
||||||
|
* [Выбор вашей собственной "прослойки" сессии](#Выбор-вашей-собственной-прослойки-сессий)
|
||||||
* [Прерывание](#Прерывание)
|
* [Прерывание](#Прерывание)
|
||||||
* [Передача](#Передача)
|
* [Передача](#Передача)
|
||||||
* [Вызов другого маршрута](#Вызов-другого-маршрута)
|
* [Вызов другого маршрута](#Вызов-другого-маршрута)
|
||||||
|
@ -1341,25 +1342,6 @@ get '/:value' do
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
Заметьте, что при использовании `enable :sessions` все данные сохраняются в
|
|
||||||
куках (cookies). Это может быть не совсем то, что вы хотите (например,
|
|
||||||
сохранение больших объемов данных увеличит ваш трафик). В таком случае вы
|
|
||||||
можете использовать альтернативную Rack "прослойку" (middleware), реализующую
|
|
||||||
механизм сессий. Для этого *не надо* вызывать `enable :sessions`, вместо этого
|
|
||||||
следует подключить ее так же, как и любую другую "прослойку":
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
use Rack::Session::Pool, :expire_after => 2592000
|
|
||||||
|
|
||||||
get '/' do
|
|
||||||
"value = " << session['value'].inspect
|
|
||||||
end
|
|
||||||
|
|
||||||
get '/:value' do
|
|
||||||
session['value'] = params['value']
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
Для повышения безопасности данные сессии в куках подписываются секретным
|
Для повышения безопасности данные сессии в куках подписываются секретным
|
||||||
ключом. Секретный ключ генерируется Sinatra. Тем не менее, так как этот ключ
|
ключом. Секретный ключ генерируется Sinatra. Тем не менее, так как этот ключ
|
||||||
будет меняться с каждым запуском приложения, вы, возможно, захотите установить
|
будет меняться с каждым запуском приложения, вы, возможно, захотите установить
|
||||||
|
@ -1384,6 +1366,40 @@ foo.com, добавьте *.* перед доменом:
|
||||||
set :sessions, :domain => '.foo.com'
|
set :sessions, :domain => '.foo.com'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Выбор вашей собственной "прослойки" сессии
|
||||||
|
|
||||||
|
Заметьте, что при использовании `enable :sessions` все данные сохраняются в
|
||||||
|
куках (cookies). Это может быть не совсем то, что вы хотите (например,
|
||||||
|
сохранение больших объемов данных увеличит ваш трафик). В таком случае вы
|
||||||
|
можете использовать альтернативную Rack "прослойку" (middleware), реализующую
|
||||||
|
механизм сессий. Для этого используете один из способов ниже:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
enable :sessions
|
||||||
|
set :session_store, Rack::Session::Pool
|
||||||
|
```
|
||||||
|
|
||||||
|
Или установите параметры сессии с помощью хеша опций:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
set :sessions, :expire_after => 2592000
|
||||||
|
set :session_store, Rack::Session::Pool
|
||||||
|
```
|
||||||
|
|
||||||
|
Вы так же можете не вызывать `enable :sessions`, а вместо этого вызывать
|
||||||
|
необходимую вам прослойку так же, как вы это обычно делаете. Очень важно
|
||||||
|
обратить внимание на то, что когда вы используете этот метод, основной способ
|
||||||
|
защиты сессии **не будет включен по умолчанию**. Если вы хотите включить защиту,
|
||||||
|
вам нужно добавить следующие строчки:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
use Rack::Session::Pool, :expire_after => 2592000
|
||||||
|
use Rack::Protection::RemoteToken
|
||||||
|
use Rack::Protection::SessionHijacking
|
||||||
|
```
|
||||||
|
|
||||||
|
Смотрите секцию "Настройка защиты от атак" для более подробной информации.
|
||||||
|
|
||||||
### Прерывание
|
### Прерывание
|
||||||
|
|
||||||
Чтобы незамедлительно прервать обработку запроса внутри фильтра или маршрута,
|
Чтобы незамедлительно прервать обработку запроса внутри фильтра или маршрута,
|
||||||
|
|
Loading…
Reference in a new issue