{"id":23765791,"url":"https://github.com/solidusio-contrib/solidus_social","last_synced_at":"2025-05-16T12:10:55.274Z","repository":{"id":5594016,"uuid":"53446835","full_name":"solidusio-contrib/solidus_social","owner":"solidusio-contrib","description":"Building block for social authentication in your Solidus store.","archived":false,"fork":false,"pushed_at":"2025-04-11T17:02:19.000Z","size":605,"stargazers_count":31,"open_issues_count":8,"forks_count":53,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-12T09:19:52.642Z","etag":null,"topics":["ecommerce","extension","social","social-network","solidus"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solidusio-contrib.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-03-08T21:35:15.000Z","updated_at":"2025-04-11T09:07:21.000Z","dependencies_parsed_at":"2022-07-24T20:31:59.122Z","dependency_job_id":"75f8fb3d-c6f9-4c63-a6ed-1af293982618","html_url":"https://github.com/solidusio-contrib/solidus_social","commit_stats":{"total_commits":316,"total_committers":78,"mean_commits":4.051282051282051,"dds":0.8417721518987342,"last_synced_commit":"e04ba91b1406f1b05962b90d91ac6b4b5ae4fdb1"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_social","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_social/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_social/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_social/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solidusio-contrib","download_url":"https://codeload.github.com/solidusio-contrib/solidus_social/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248543910,"owners_count":21121853,"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":["ecommerce","extension","social","social-network","solidus"],"created_at":"2024-12-31T23:17:43.167Z","updated_at":"2025-05-16T12:10:55.267Z","avatar_url":"https://github.com/solidusio-contrib.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"SolidusSocial\n=============\n\n[![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_social.svg?style=svg)](https://circleci.com/gh/solidusio-contrib/solidus_social)\n[![Code Climate](https://codeclimate.com/github/solidusio-contrib/solidus_social/badges/gpa.svg)](https://codeclimate.com/github/solidusio-contrib/solidus_social)\n\nSocial login support for Solidus. Solidus Social handles authorization, account\ncreation and association through third-party services.\nCurrently Facebook, Github and Google OAuth2 are available out of the box.\n\nInstallation\n------------\n\nAdd solidus_social to your Gemfile:\n\n```ruby\ngem 'solidus_social'\n```\n\nBundle your dependencies and run the installation generator:\n\n```shell\nbundle\nbundle exec rails g solidus_social:install\nbundle exec rails db:migrate\n```\n\nThis will install a new initializer `config/initializers/solidus_social.rb` into\nyour project that allows you to setup the services you want configured for your app.\n\nOptional: By default the login path will be '/users/auth/:provider'. If you\nwant something else, configure it in `config/initializers/solidus_social.rb`.\n\n\nUsing OAuth Sources\n-------------------\n\nLogin as an admin user and navigate to Configuration \u003e Social Authentication Methods\n\nClick \"New Authentication Method\" and choose one of your configured providers.\n\n**You MUST restart your application after configuring or updating an authentication method.**\n\nRegistering Your Application\n----------------------------\n\nFacebook, Github and Google OAuth2 are supported out of the\nbox but, you will need to register your application with each of the sites you\nwant to use.\n\nWhen setting up development applications, keep in mind that most services do\nnot support `localhost` for your URL/domain. You will need to us a regular\ndomain (i.e.  `domain.tld`, `hostname.local`) or an IP addresses (`127.0.0.1`).\nMake sure you specifity the right IP address.\n\n### Facebook\n\n[Facebook / Developers / Apps][2]\n\n1. Name the app and agree to the terms.\n2. Fill out the capcha.\n3. Under the \"Web Site\" tab enter:\n  - Site URL: `http://yourhostname.local:3000` for development and\n    `http://your-site.com` for production\n  - Site domain: `yourhostname.local` and `your-site.com` respectively\n\n### Github\n\n[Github / Applications / Register a new OAuth application][4]\n\n1. Name the application.\n2. Fill in the details\n  - Main URL: `http://yourhostname.local:3000` for development and\n    `http://your-site.com` for production\n  - Callback URL: `http://yourhostname.local:3000` for development and\n    `http://your-site.com` for production\n4. Click Create.\n\n### Google OAuth2\n[Google / APIs / Credentials/ Create Credential](https://console.developers.google.com/)\n\n1. In the APIs and Services dashboard, visit 'Credentials' on the side, then select 'Create Credentials' and 'Oauth client ID'.\n2. Name the Application, select \"Web Application\" as a type.\n3. Under \"Authorized redirect URIs\", add your site (example:\n   `http://localhost:3000/users/auth/google_oauth2/callback`)\n\n\u003e More info: [https://developers.google.com/identity/protocols/OAuth2](https://developers.google.com/identity/protocols/OAuth2)\n\n### Other OAuth Providers\n\nOther OAuth providers are supported, given that there is an [OmniAuth\nstrategy][12] for them. (If there isn't, you can [write one][13].)\n\n#### LinkedIn Example\n\n1. Add `gem \"omniauth-linkedin\"` to your Gemfile and run `bundle install`.\n2. In `config/initializers/solidus_social.rb` add and initialize a new provider\n   for SolidusSocial:\n\n   ```ruby\n\n     config.providers = {\n       # The configuration key has to match your omniauth strategy.\n       linkedin: {\n         api_key: ENV['LINKEDIN_API_KEY'],\n         api_secret: ENV['LINKEDIN_API_SECRET'],\n       },\n       # More providers here\n   ```\n3. Activate your provider as usual.\n4. Do **one** of the following:\n\n   - Override the `spree/users/social` view to render OAuth links to display\n     your LinkedIn link.\n   - Include in your CSS a definition for `.icon-spree-linkedin-circled` and an\n     embedded icon font for LinkedIn from [Fontello][14] (the way existing\n     icons for Facebook etc are implemented). You can also override\n     CSS classes for other providers, `.icon-spree-\u003cprovider\u003e-circled`, to use\n     different font icons or classic background images, without having to\n     override views.\n\n#### Apple Id Example\n\n1. Add `gem \"omniauth-apple\"` to your Gemfile and run `bundle install`.\n2. In `config/initializers/solidus_social.rb` add and initialize a new provider\n   for SolidusSocial:\n\n   ```ruby\n\n     config.providers = {\n        apple:          {\n          icon:   'fa-apple',\n          title:  'Apple'\n        },\n       # More providers here\n   ```\n   add its configuration after `SolidusSocial.init_providers` line:\n   ```ruby\n   \n     Devise.setup do |config|\n       # The configuration key has to match your omniauth strategy.\n       config.omniauth :apple, ENV['APPLE_CLIENT_ID'], '',\n                       scope:    'email',\n                       team_id:  ENV['APPLE_TEAM_ID'],\n                       key_id:   ENV['APPLE_KEY_ID'],\n                       pem:      ENV['APPLE_PRIVATE_KEY'].gsub('\\n', \"\\n\")\n     end\n   ```\n   Notice: APPLE_PRIVATE_KEY should consist from one-line p8-file content, like this `'\\n-----BEGIN PRIVATE KEY-----\\nsecret\\n-----END PRIVATE KEY-----\\n'`\n\nDocumentation\n-------------\n\nAPI documentation is available [on RubyDoc.info][15].\n\nContributing\n------------\n\nSee corresponding [guidelines][11].\n\nTesting\n-------\n\nFirst bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs, and [Rubocop](https://github.com/bbatsov/rubocop) static code analysis. The dummy app can be regenerated by using `rake test_app`.\n\n```shell\nbundle\nbin/rake\n```\n\nWhen testing your application's integration with this extension you may use its factories.\nSimply add this require statement to your spec_helper:\n\n```ruby\nrequire 'solidus_social/factories'\n```\n\nReleasing\n---------\n\nYour new extension version can be released using `gem-release` like this:\n\n```shell\nbundle exec gem bump -v VERSION --tag --push --remote upstream \u0026\u0026 gem release\n```\n\nLicense\n-------\n\nCopyright (c) 2014 [John Dyer][7] and [contributors][8], released under the [New BSD License][9]\n\n[1]: https://github.com/spree/spree\n[2]: https://developers.facebook.com/apps/?action=create\n[3]: https://github.com/settings/applications/new\n[4]: http://www.fsf.org/licensing/essays/free-sw.html\n[5]: https://github.com/solidusio-contrib/solidus_social/issues\n[6]: https://github.com/LBRapid\n[7]: https://github.com/solidusio-contrib/solidus_social/graphs/contributors\n[8]: https://github.com/solidusio-contrib/solidus_social/blob/master/LICENSE\n[9]: https://github.com/solidusio-contrib/solidus_social/blob/master/CONTRIBUTING.md\n[10]: https://github.com/intridea/omniauth/wiki/List-of-Strategies\n[11]: https://github.com/intridea/omniauth/wiki/Strategy-Contribution-Guide\n[12]: http://fontello.com/\n[13]: http://www.rubydoc.info/github/solidusio-contrib/solidus_social/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidusio-contrib%2Fsolidus_social","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolidusio-contrib%2Fsolidus_social","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidusio-contrib%2Fsolidus_social/lists"}