phx_gen_auth
elixir-raknet
phx_gen_auth | elixir-raknet | |
---|---|---|
6 | 2 | |
803 | 211 | |
- | 0.0% | |
4.4 | 0.0 | |
over 2 years ago | 7 months ago | |
Elixir | Elixir | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
phx_gen_auth
-
Build Interactive Phoenix LiveView UIs with Components
This code assumes you've used the Phoenix Auth generator to add authentication to your Phoenix app. The details of authentication aren't important for our purposes here. Just know that the survey route is a protected route that requires an authenticated user. This means that when a logged-in user points their browser at /survey, the SurveyLive view will mount with a session argument that contains a key of "user_token" pointing to a token we can use to identify the current user. The generator also gives us a function, Accounts.get_user_by_session_token(user_token), that we will use to fetch the user for that token.
-
LiveView Integration Tests in Elixir
We're also using a test helper provided for us by the Phoenix authentication generator—register_and_log_in_user/1. This function creates a conn struct with a logged-in user, a necessary step because visiting the /admin-dashboard route requires an authenticated user.
-
Best options for deploying your frontend and backend
Thanks for the suggestion. I started off with a Phoenix-only app but then I realised that it would be really nice to have a separate frontend. My Phoenix app was using phx.gen.auth, but according to the readme on their GH page, the `--no-html` option is not supported, so I'm thinking about trying POW. I've found this example which looks a little full-on, especially compared to how simple this is done in Django.
-
10 Years(-Ish) of Elixir
Thank you for your work on adding user registration and authorization to Phoenix!
I'm setting up a new Phoenix app for a side project this weekend and have just run Arron Renner's [auth generator](https://github.com/aaronrenner/phx_gen_auth). Having user registration out of the box will save a big chunk of time and energy!
-
How to connect Pow and Live View in your Phoenix project
Even though phx.gen.auth seems to be the hip solution for authentication at the moment in Phoenix land, I still prefer to use Pow for my small hobby projects and a side project I am working on. A short statement why I prefer Pow can be found at the end of the post.
elixir-raknet
-
Bootstrapping a multiplayer server with Elixir at X-Plane
The core of the X-Plane server is our RakNet UDP protocol, which is open sourced under the MIT license here:
https://github.com/X-Plane/elixir-raknet
It's not a full game server, but the "Usage" section of the README provides a sketch of what the rest of the server (the part that implements the business logic) looks like.
-
10 Years(-Ish) of Elixir
Happy Elixir user here. At work we have a use case that isn't covered by José's high-level overview of the domains Elixir's used in: we run a massive multiplayer game server on it.
This is actually a really good fit. (It kind of rhymes with the original use of Erlang, being telecoms infrastructure.) We get outstanding concurrency support, high reliability, and really efficient development times. I can't imagine shipping this feature with a server written in C++ (the language I'm most comfortable in), and I can't imagine scaling it the way we need to if we'd gone for a traditional web language like Node, PHP, etc.
If you're interested, you can see the RakNet (game networking protocol) implementation we use on the server here:
https://github.com/X-Plane/elixir-raknet
The README gives a good overview of the full MMO server's architecture, too: each client connection is a stateful Elixir process (not to be confused with a heavy-weight OS process!), acting asynchronously on a client state struct; clients then asynchronously schedule themselves to send updates back to the user.
What are some alternatives?
Pow - Robust, modular, and extendable user authentication system
scrivener_ecto - Paginate your Ecto queries with Scrivener
ueberauth - An Elixir Authentication System for Plug-based Web Applications
credo - A static code analysis tool for the Elixir language with a focus on code consistency and teaching.
guardian - Elixir Authentication
ex_venture - Text based MMORPG engine written in Elixir
PowAssent - Multi-provider authentication for your Pow enabled app
canada - Easy permission definitions in Elixir apps!
ueberauth_auth0 - Auth0 OAuth2 strategy for Überauth.
stm_agent - Software transactional memory for Elixir.
ueberauth_active_directory
phoenix_client_ssl - Set of Plugs / Lib to help with SSL Client Auth.