Basic Meteor Authentication in Phoenix

Hey all,

I’m coming (most recently) from a Meteor background. This means that much of my current interest around Elixir and Phoenix come from exploring how I can integrate them with existing Meteor applications.

I recently wrote up an article on basic integration with Meteor’s Accounts system to do Meteor-style authentication in a Phoenix application. It’s definitely very simple and feature-poor at the moment, but I think it’s a good diving off point for anyone looking to do this kind of thing.

Hopefully this helps some former (or current) Meteor developers out there, or any Elixir developers looking to work with MongoDB.

2 Likes

I’m curious, can you give a quick synopsis of meteor? It is not a thing I’ve looked at yet and the immediate main website is unrevealing (blehg). What does it handle, what is its syntax and structure like, etc…?

Meteor is basically a Javascript framework/platform that focuses on building full-stack, soft-realtime Javascript applications. It’s a walled garden with it’s own set of Meteor-specific packages, which is fantastic for unbelievably rapid development, but less so for long-term development.

It’s also intimately tied to MongoDB, with a focus on having the “database everywhere”, so you can run pseudo-MongoDB queries on the client against a limited set of documents published to the client from the server.

That sounds, odd, and insecure. o.O

No more insecure than any other stack. It just uses a pub/sub model to push data to the client instead of explicitly fetching it. The client-side “Minimongo” is just a glorified client-side cache.

1 Like

@petecorey another awesome post!

Have you looked into shared login between a phoenix and Meteor application? i.e user logs into Meteor application which persists when navigating to the Phoenix application?

1 Like

Thanks!

I haven’t looked into sharing auth between a Meteor app and a Phoenix app, but that would be interesting to look into.

Meteor stores its resume tokens in localStorage, which makes things a bit more difficult. The admithub:shared-auth package does some clever things with iframes and inter-frame communicate to share auth between two different Meteor applications. Something similar could probably be done between a Meteor and Phoenix app.

Iirc SkinnyGeek1001 in the above thread has a few example projects with Meteor and Phoenix integration.

2 Likes