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
|
||||
```
|
||||
|
||||
Заметьте, что при использовании `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. Тем не менее, так как этот ключ
|
||||
будет меняться с каждым запуском приложения, вы, возможно, захотите установить
|
||||
|
@ -1384,6 +1366,40 @@ 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