Дружественная маршрутизация URL-адресов Rails с открытым идентификатором
-
03-07-2019 - |
Вопрос
Я хотел бы использовать создание рельсового маршрута для открытого идентификатора пользователя.URL-адрес будет выглядеть примерно так
http://mysite.com/identity/:html_encoded_openid
or
http://mysite.com/identity/:html_encoded_openid.xml
Это будет сделано для того, чтобы на сайте можно было запросить открытый идентификатор и либо просмотреть информацию об этом идентификаторе, либо получить XML-документ, содержащий эту информацию.Стандартные вещи Rails.
Мне нужен ваш опыт по нескольким вопросам:
Стандартные маршруты рельсов, кажется, душат .s в openid, так что:
http://mysite.com/identity/openid
нашел бы маршрут, но
http://mysite.com/identity/openid.myopenid.com
не стал бы.
На какие проблемы безопасности мне следует обратить внимание?
- Есть ли лучший способ закодировать запрос, возможно, с помощью строки запроса?
И я бы предпочел не использовать стандартный метод дружественного URL-адреса:
my-friendly-openid-com
or
23-my-friendly-openid-com
если возможно.
Решение
Вы могли бы обработать этот второй маршрут примерно так (замените имя действия на что-то реальное).
map.connect 'identity/:id', :controller => "identity",
:action => "foo",
:requirements => {:id => /(\w+\.?)+/}