I don't know for sure, but I used devise, but then I ended up cutting out most of the functionality, so it probably would have been easier to go a different route. I don't use any of the devise views except for the link that one clicks from their email when they forget their password. The login and account settings are just part of my single-page app. I ended up not using the devise login route either -- I forget why, but it was doing something extra.
So, I'd love to hear what the canonical way to do that is, too.