I'm in the process of making a nicer demo as well as cleaning up some of these services into a usable module, but here's what I've come up with. This is a complex process to work around some caveats, so hang in there. You'll need to break this down into several pieces. Take a look at this plunk. First, you need a service to store the user's identity. I call this principal. It can be checked to see