Дружественная маршрутизация URL-адресов Rails с открытым идентификатором

StackOverflow https://stackoverflow.com/questions/409782

Вопрос

Я хотел бы использовать создание рельсового маршрута для открытого идентификатора пользователя.URL-адрес будет выглядеть примерно так

http://mysite.com/identity/:html_encoded_openid
or
http://mysite.com/identity/:html_encoded_openid.xml

Это будет сделано для того, чтобы на сайте можно было запросить открытый идентификатор и либо просмотреть информацию об этом идентификаторе, либо получить XML-документ, содержащий эту информацию.Стандартные вещи Rails.

Мне нужен ваш опыт по нескольким вопросам:

  1. Стандартные маршруты рельсов, кажется, душат .s в openid, так что:

    http://mysite.com/identity/openid

    нашел бы маршрут, но

    http://mysite.com/identity/openid.myopenid.com

    не стал бы.

  2. На какие проблемы безопасности мне следует обратить внимание?

  3. Есть ли лучший способ закодировать запрос, возможно, с помощью строки запроса?

И я бы предпочел не использовать стандартный метод дружественного URL-адреса:

my-friendly-openid-com
or
23-my-friendly-openid-com

если возможно.

Это было полезно?

Решение

Вы могли бы обработать этот второй маршрут примерно так (замените имя действия на что-то реальное).

map.connect 'identity/:id', :controller => "identity", 
                            :action => "foo", 
                            :requirements => {:id => /(\w+\.?)+/}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top