Así que estoy haciendo una aplicación para Android que necesita un back-end web. El sitio web está siendo desarrollado en Ruby on Rails. Tiene un lado orientado hacia el cliente (páginas HTML bonitas) pero también quiero que pueda servir información a mi aplicación Android a través de JSON. Sin embargo, no quiero que todo el mundo pueda obtener este JSON, ya que contiene información posiblemente peligrosa. ¿Cómo bloqueo las páginas con formato JSON y aún las hago accesibles desde la aplicación de Android?¿Cómo crear una Api REST de Rails segura para mi aplicación?
Para que conste, estoy usando Rails 3.1 has_secure_password
para la autenticación del usuario en el sitio, y me gustaría tener algunas rutas que están abiertos para peticiones HTML, pero bloqueado por JSON (por ejemplo, el /users
url debe ser accesible como HTML pero como JSON solo debería poder accederse desde mi aplicación con algún método de seguridad).
¿Hay alguna manera de hacer esto, o la API tiene que ser una aplicación separada (que sería enormemente inconveniente con la configuración de base de datos, etc.)?
ACLARACIÓN: Básicamente lo que quiero hacer es crear una API JSON basada en tokens segura de mi aplicación Rails, y no quiero usar Devise o algo que me obligue a cambiar la forma en que ya estoy almacenando mi información de usuario/pase.