我想为用户的开放ID使用创建rails路由。网址看起来像

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

这样可以查询站点的开放ID,并查看该标识的信息或接收包含该信息的xml文档。标准Rails的东西。

我正在寻找你在一些方面的专业知识:

  1. 标准的rails路由似乎会阻塞openid中的.s,以便:

    http://mysite.com/identity/openid

    会找到路线,但

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

    不会。

  2. 我需要注意哪些安全问题?

  3. 是否有更好的方法对查询进行编码,可能使用查询字符串?
  4. 我宁愿不使用标准的友好网址方法:

    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