{"id":18298614,"url":"https://github.com/fusionauth/fusionauth-example-rails-lob-integration","last_synced_at":"2026-04-24T16:04:29.376Z","repository":{"id":71200577,"uuid":"342732547","full_name":"FusionAuth/fusionauth-example-rails-lob-integration","owner":"FusionAuth","description":"Integration with lob to allow you to send letters for real world address verification","archived":false,"fork":false,"pushed_at":"2024-07-28T05:55:38.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-05T17:38:06.985Z","etag":null,"topics":["fusionauth","lob","login-system","oauth","oauth2","oidc","rails"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FusionAuth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-27T00:10:35.000Z","updated_at":"2025-04-02T02:11:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"a43afecd-320f-44ec-a08f-5d99276043f2","html_url":"https://github.com/FusionAuth/fusionauth-example-rails-lob-integration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FusionAuth%2Ffusionauth-example-rails-lob-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FusionAuth%2Ffusionauth-example-rails-lob-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FusionAuth%2Ffusionauth-example-rails-lob-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FusionAuth%2Ffusionauth-example-rails-lob-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FusionAuth","download_url":"https://codeload.github.com/FusionAuth/fusionauth-example-rails-lob-integration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248008624,"owners_count":21032556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fusionauth","lob","login-system","oauth","oauth2","oidc","rails"],"created_at":"2024-11-05T15:06:33.469Z","updated_at":"2026-04-24T16:04:29.291Z","avatar_url":"https://github.com/FusionAuth.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\nThis application uses the Lob and FusionAuth APIs to verify a user's home address.\n\n## Prereqs\n\n* FusionAuth installed with an API key\n* At least the developer edition (for the registration forms), and an activated reactor\n* A lob.com account with an API key\n\n## Set up\n\n### Envt\n\nYou need to set these variables:\n\n```\nexport HMAC_SECRET=... # get from FusionAuth keymaster\nexport FA_API_KEY=... # setup a key\nexport LOB_API_KEY=... # get from Lob\n```\n\n### Rails\n\nRun bundle install\n\n`rails db:migrate`, this creates some forms\n\n`rails s -b 0.0.0.0`\n\n### FusionAuth\n\nset up an application in FusionAuth. Set the oauth config to be `http://localhost:3000/oauth2-callback` for the redirect url and `http://localhost:3000` for the logout url.\n\nOptionally add the first and last name fields to the registration form.\n\nset up a webhook to respond to the user.registration.create event, and point it to `http://localhost:3000/registration_webhook`. Configure the tenant to do the same.\n\nOptionally add the following to the default messages file for your theme. this populates the tooltips on the registration page\n\n```\nuser.email=Email\nuser.password=Password\nuser.birthDate=Birthdate\nuser.firstName=First name\nuser.lastName=Last name\nuser.data.streetaddress1=Address line 1\nuser.data.streetaddress2=Address line 2\nuser.data.zipcode=Zip code\n```\n\n## Test it out\n\nUsing an incognito window, go to http://localhost:3000\n\nRegister a user \n\nView the user's data in the admin panel, you'll see the code\n\nLog into lob and you should see a test letter sent\n\nAs the user, verify your account using the code\n\nView the user's data in the admin panel, you'll see verification status has changed\n\nYou can also query the API for users who have not yet verified their email address:\n\n```\nAPI_KEY=...\n\ncurl -XPOST -H \"Authorization: $API_KEY\" -H \"Content-Type: application/json\" 'http://localhost:9011/api/user/search' -d '{\n  \"search\": {\n    \"numberOfResults\": 50,\n    \"query\":\"{\\\"match\\\":{\\\"data.mailingAddressVerified\\\":{\\\"query\\\":\\\"false\\\"}}}\",\n    \"startRow\": 0\n  }\n}'\n```\n\n## Next steps\n\n* Make it look good.\n* Actually send the letter instead of the test letter.\n* Move the bulk of the webhook into a active job or sidekiq job.\n* Figure out log out, which doesn't work smoothly\n* Actually display some 'home address verified' protected info\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusionauth%2Ffusionauth-example-rails-lob-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffusionauth%2Ffusionauth-example-rails-lob-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusionauth%2Ffusionauth-example-rails-lob-integration/lists"}