It can be done! You do not need to set-up port forwarding or otherwise have your development server serving HTTP requests over the Internet.
We use Django, but the general concepts can probably be applied to other frameworks.
Here's an overview:
- Fake a domain
- Create your Facebook app
- Obtain an SSL certificate
- Install & configure nginx
- Run & Develop
Step 1 - Fake a domain
If your app will have its own domain, use that one, and pick a subdomain. For instance, if your app will be hosted at www.example.org and your name is Monty, you might choose monty.example ...