{"id":16062046,"url":"https://github.com/rossta/opensesame","last_synced_at":"2025-08-25T02:31:26.637Z","repository":{"id":2835480,"uuid":"3838503","full_name":"rossta/opensesame","owner":"rossta","description":"Rails engine for authenticating internal applications and private-access products","archived":false,"fork":false,"pushed_at":"2020-12-09T14:24:03.000Z","size":534,"stargazers_count":4,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-23T12:34:00.939Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rossta.github.com/opensesame","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rossta.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-03-26T23:23:13.000Z","updated_at":"2017-11-09T23:02:10.000Z","dependencies_parsed_at":"2022-08-20T14:31:27.161Z","dependency_job_id":null,"html_url":"https://github.com/rossta/opensesame","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/rossta/opensesame","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossta%2Fopensesame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossta%2Fopensesame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossta%2Fopensesame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossta%2Fopensesame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rossta","download_url":"https://codeload.github.com/rossta/opensesame/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rossta%2Fopensesame/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271999337,"owners_count":24856182,"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","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-09T04:21:35.503Z","updated_at":"2025-08-25T02:31:26.342Z","avatar_url":"https://github.com/rossta.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenSesame\n\n[![Build Status](https://secure.travis-ci.org/rossta/opensesame.png)](http://travis-ci.org/rossta/opensesame)\n[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/rossta/opensesame)\n\nOpenSesame is a [Warden](https://github.com/hassox/warden) strategy for providing \"walled garden\" authentication for access to Rack-based applications via Omniauth. The intent is protect the visibility of your app from the outside world. For example, your company has internal apps and/or staging enviroments for multiple projects and you want something better than HTTP basic auth.\n\nEnter OpenSesame. To authenticate, OpenSesame currently uses Omniauth and the Github API to require that a user is both logged in to Github and a member of the Github organization for which OpenSesame is configured.\n\n## Usage\n\nIn your Gemfile:\n\n```ruby\ngem \"opensesame\"\n```\n\nRegister your application(s) with Github for OAuth access. For each application, you need a name, the site url,\nand a callback for OAuth. The OmniAuth-Github OAuth strategy used under the hood will expect the callback at mount path + '/github/callback'. So the development version of your client application might be registered as:\n\n    Name: MyApp - local\n    URL: http://localhost:3000\n    Callback URL: http://localhost:3000/opensesame/github/callback\n\nConfigure OpenSesame:\n\n```ruby\n# Rails config/initializers/opensesame.rb\n\nrequire 'opensesame'\n\nOpenSesame.configure do |config|\n  config.enable       Rails.env.staging?\n  config.github ENV['GITHUB_APP_ID'], ENV['GITHUB_SECRET']\n  config.organization 'challengepost'\n  config.mounted_at   '/opensesame'\n\n  config.redirect_to '/path' # Set redirect to for both login and logout\n  config.redirect_after_login '/path'\n  config.redirect_after_logout '/path'\nend\n```\n\nMount OpenSesame in your Rails routes:\n\n```ruby\n# Rails config/routes.rb\nmount OpenSesame::Engine =\u003e OpenSesame.mount_prefix\n```\n\nPlace the following in your application_controller:\n\n```ruby\nbefore_filter :authenticate_opensesame!\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frossta%2Fopensesame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frossta%2Fopensesame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frossta%2Fopensesame/lists"}