Rails
Examples of Integrating Sign-In with Ethereum into Rails Applications
Last updated
Examples of Integrating Sign-In with Ethereum into Rails Applications
Last updated
Rails is a full-stack framework built on top of Ruby to create web apps. The following are a set of gems and examples to get you started incorporating Sign-In with Ethereum to your Rails application.
Two gems have been created in order to make different examples of Rails integrations possible:
Which is a Rails gem that adds Sign-In with Ethereum local sign-in routes.
Which provides an strategy for Sign In With Ethereum.
Currently, there are three examples of Sign-In with Ethereum being used for authentication in Rails applications:
Which shows how to manually add endpoints to generate and verify the Sign-In with Ethereum message, and handle session-based user logins on a Rails application.
Which shows how to use siwe_rails
gem to set up and configure the endpoints to generate and verify a Sign-In with Ethereum message in a Rails application.
Which shows how to use and configure the omniauth-siwe
provider with OmniAuth in a Rails application.
To get started with any of the examples, clone the siwe-rails-examples
repository locally:
When testing, please make sure to update the Ruby version specified in the example's Gemfile
to the current version of Ruby that you are using. You can check your version of Ruby by entering ruby -v
in your terminal.
To build and test each example, check out the following guides:
First, enter the custom-controller
directory in siwe-rails-examples
.
Finally, run the following commands to run the example:
This executes any database migrations, installs the proper gems, and runs the Rails example. Visit the example by visiting localhost:3000
in your web browser.
You should now see the example, and be able to Sign-In with Ethereum to authenticate and establish a session.
Clone the siwe_rails
gem in the same parent directory as siwe-rails-examples
:
Next, enter the rails-engine
directory in siwe-rails-examples
.
Finally, run the following commands to run the example:
This executes any database migrations, installs the proper gems, and runs the Rails example. Visit the example by visiting localhost:3000
in your web browser.
You should now see the example, and be able to Sign-In with Ethereum to authenticate and establish a session.
Clone the omniauth-siwe
gem in the same parent directory as siwe-rails-examples
:
Next, enter the omniauth
directory in siwe-rails-examples
.
In this case, since we're running this example on localhost:3000
, we need the redirect_uris
to contain http://localhost:3000/auth/siwe/callback
.
After that, update omniauth.rb
under omniauth/config/initializers
with both the provided identifier (client_id
) and secret (client_secret
):
Finally, run the following commands to run the example:
This installs the proper gems and runs the Rails example. Visit the example by visiting localhost:3000
in your web browser.
You should now see the example, and be able to Sign-In with Ethereum to authenticate and establish a session.
Each of these examples can be found in the repository.
To be able to use you will need to register as a client. To do that, use the following command, filling out your own redirect_uris
, according to your setup: