Instradamento degli URL intuitivo con Rails con ID aperto
-
03-07-2019 - |
Domanda
Vorrei usare creare una rotta di binari per l'id aperto di un utente. L'URL sarebbe simile a
http://mysite.com/identity/:html_encoded_openid
or
http://mysite.com/identity/:html_encoded_openid.xml
Questo sarebbe per cui il sito potrebbe essere interrogato per un ID aperto e visualizzare le informazioni per tale identità o ricevere un documento XML contenente tali informazioni. Roba standard di Rails.
Sto cercando la tua esperienza su alcune cose:
-
Le rotte di rotaie standard sembrano soffocare il .s in un openid in modo che:
http://mysite.com/identity/openid
troverebbe una rotta ma
http://mysite.com/identity/openid.myopenid.com
no.
-
Quali problemi di sicurezza dovrei cercare?
- Esiste un modo migliore per codificare la query, magari con la stringa di query?
E preferirei non utilizzare il metodo URL amichevole standard di usare:
my-friendly-openid-com
or
23-my-friendly-openid-com
se possibile.
Soluzione
Potresti gestire quel secondo percorso con qualcosa del genere (sostituisci il nome dell'azione con qualcosa di reale).
map.connect 'identity/:id', :controller => "identity",
:action => "foo",
:requirements => {:id => /(\w+\.?)+/}