{"id":19737730,"url":"https://github.com/elusivemind/bakery","last_synced_at":"2026-05-11T01:41:01.232Z","repository":{"id":91444722,"uuid":"364301370","full_name":"ElusiveMind/bakery","owner":"ElusiveMind","description":"The repository for the Drupal 8/9 single sign on module for Drupal.","archived":false,"fork":false,"pushed_at":"2021-12-19T13:00:49.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T05:46:32.099Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ElusiveMind.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2021-05-04T15:26:23.000Z","updated_at":"2021-05-09T23:03:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"a9c8a93f-6c00-4950-90eb-974b74175638","html_url":"https://github.com/ElusiveMind/bakery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ElusiveMind/bakery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fbakery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fbakery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fbakery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fbakery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ElusiveMind","download_url":"https://codeload.github.com/ElusiveMind/bakery/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fbakery/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285884980,"owners_count":27248045,"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-11-22T02:00:05.934Z","response_time":64,"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-11-12T01:12:07.962Z","updated_at":"2025-11-23T01:02:32.875Z","avatar_url":"https://github.com/ElusiveMind.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Bakery module, for single sign-on between Drupal sites on the same domain.\n\nIn this README:\n  * Bakery versions and compatibility\n  * Installation and setup\n  * How Bakery works\n  * Notes on terminology\n  * Common problems and support\n  * Sharing account information using Bakery\n  * Notes on registration/sign-in on subsites\n  * Notes on migrating to Bakery\n  * Known issues\n  * Further information and support\n\nBakery versions and compatibility:\n===========================================\nThis is the 2.x branch of the Bakery module for Drupal 7. The 2.x branch differs\nmainly from the 1.x branch by offering slave site registration and login.\n\n2.x versions between major branches of Drupal are compatible, meaning you can\nrun a Drupal 7 version of the 2.x branch of Bakery with a Drupal 6 version of\nthe 2.x branch. 1.x and 2.x branches are not compatible.\n\nInstallation and setup:\n===========================================\nBakery provides single sign-on (SSO) functionality for two or more sites.\nDeploy this module on the authoritative \"master\" Drupal server and the secondary\n\"slave\" or subsite server. The master and slave must be on the same domain*.\n\nEnable and configure Bakery on the master server first. It is recommended that\nyou use the UID 1 Drupal account for this configuration.\n\n  1. Enable Bakery at admin/modules\n  2. Visit admin/config/bakery to configure\n\nThis is the master site.\n\n  3. Check the box for \"Is this the master site?\"\n  4. Enter the full URL of this site, including ending forward slash\n    - Example: http://example.org/\n\nFor SSO to work, Bakery must know the slave, or subsites, to use.\n\n  5. Enter the full URLs of each slave site, separated by newlines\n    - Example:  http://store.example.org/\n                http://api.example.org/\n\nTwo other required fields for Bakery to work are the private key and the cookie\ndomain.\n\n  6. Enter a long and secure private key\n  7. Enter the domain to use for Bakery cookies.\n  These cookies are shared so the domain should be the top level,\n  with leading period. - Example: .example.org\n  8. Save configuration (we'll come back to the other fields)\n\nNow to enable and configure Bakery on the slave or subsite.\nIf possible, you should log in and use the UID 1 Drupal account\n- for this configuration.\n\n  9. Enable Bakery at admin/modules\n  10. Visit admin/config/system/bakery to configure\n\nThis is a subsite site.\n\n  11. Do not check the master site box\n  12. Enter the full URL of the master site set in step #4\n  13. The slave sites textarea can be left blank\n  14. Enter the exact same private key set in step #6\n  15. Enter the exact same domain set in step #7\n  16. Save configuration (we'll come back to the other fields)\n\nBakery should now be set to work for the master and this slave site. Open a\ndifferent browser than the one you are currently using and visit the master\nsite. Log in with a standard account. Once successful visit the slave site and\nconfirm that you are also logged in. If you encountered problems at any point\nplease consult the section here labeled \"Problems and support\".\n\nYou can now enable and configure Bakery for sites in your network if required,\nor read the section labeled \"Sharing account information using Bakery\".\n\n* Master and slave must be on the same domain, but are not required to be at\ncertain levels. For example, you can have the master be sub.example.com and a\nslave be example.com.\n\nHow Bakery works:\n===========================================\nBakery provides single sign-on between Drupal sites on the same domain using a\nshared cookie. When a user authenticates on a site they are sent a cookie by\nDrupal, containing a unique identifier for that user. Sub-sequent requests by\nthat user will contain the identifier, allowing Drupal to recognize that the\nrequest is coming from a specific user, an authenticated user. This process is\nhandled by Drupal core. Bakery augments the login process and sends an\nadditional cookie (referred internally to as the CHOCOLATECHIP cookie). Should\nthe user now visit a sub-site (on the same domain) their browser will send this\nBakery-created cookie. On the sub-site Bakery will recognize the cookie and if\nit is valid will authenticate the user (via Drupal core's processes). The user\nis now authenticated on both sites while only have to log on to one.\n\nNotes on terminology:\n===========================================\nBakery documentation and discussion makes repeated reference to the words\n\"master\" and \"slave\". The terms stem from the common communication model between\ndevices or processes in computer systems where one has unidirectional control\nover another. In Bakery's case, the master is the site with authoritative\naccount and authentication information. The master is occasionaly referred to as\nthe \"main\" site. The slave site can be referred to as the \"subsite\", but since\nBakery does not enforce top-level and sub-domains the term \"subsite\" may be\nincorrect for some instances.\n\nCommon problems and support:\n===========================================\n  * Cannot log in, how do I disable Bakery?\n    - If you do not have access to disable the Bakery module you'll need\n      access to the Drupal database for the site. To disable Bakery run this\n      query: UPDATE system SET status = 0 WHERE name = 'bakery';\n      After that you'll also need to clear caches.\n\nSharing account information using Bakery:\n===========================================\nA modest amount of account data sharing between Bakery-enabled sites is\nsupported. The core account fields 'name' and 'mail' are always synchronized.\n\nThe following fields from user accounts are optionally synchronized:\n  * status\n  * user picture\n  * language\n  * signature\n  * timezone\n\nNotes on registration/sign-in on subsites:\n===========================================\nThis feature is important for usability. It's also really easy to configure your\nsite so that this feature is horrible for usability. A few examples:\n\nRegistration:\nThis feature does not support saving any data other than the username, e-mail\naddress, and fields created with the core profile module. If you have other\nmodules that modify the registration process to add fields or make the form\nbehave differently they are unlikely to work properly from the subsite.\n\nYou should keep the \"allow registration\" and \"Require e-mail verification when\na visitor creates an account\" settings the same on all sites. If your\nmaster site disallows registration then no subsites will be allowed to create\naccounts either and users will be confused why they see a form but it doesn't\nwork.\n\nNotes on migrating to Bakery:\n===========================================\nMigrating to using Bakery can be a fairly simple process. This process will work\nfor separate sites and for a shared users table, though the latter can require a\nfew additional steps.\n\nPre-migration data synchronization is recommended to alleviate potential\naccount mis-matches. According to Bakery two accounts are in sync when the\nusername and email are identical and the slave account's init property contains\nthe URL of the user edit page on the master\n(e.g. http://example.org/user/9/edit -- where example.org is the master). The\nUID of the accounts do not need to be identical. It is recommended you at least\nsynchronize usernames and email address for accounts that belong to the same\nperson across sites.\n\nFor people that do not have joint accounts you could ask them via email to\ncreate an account on the site where there account does not exist, to assist the\nprocess.\n\nFor accounts that have the same username but different email addresses Bakery\nprovides a self-service mechanism for synchronizing accounts, but in the event\nthis is inadequate or confusing you should provide a site administrator contact\nmechanism (form or email address) that is easily distinguishable.\n\nIn case there are duplicate accounts on one of the sites, the module\nhttp://drupal.org/project/usermerge may help reconcile.\n\nIf you have a shared users table solution between sites you will need to remove\nthat connection before migrating to Bakery. First, populate the other users\ntables by synchronizing accounts. Modify settings.php on the shared sites to\nremove the table information from the database connection details. If the cookie\ndomain begins with a leading dot you probably want to remove it, as it could\ncause issues when users move between sites.\n\nOnce synchronization is complete you can follow the steps listed above on\ninstallation and setup of Baker.\n\nKnown issues:\n===========================================\n  * Values in profile fields exposed on the subsite that are not set on the\n    master will not be saved.\n  * Bakery is currently incompatible with a configuration that requires\n    administrator approval of accounts. An account registered on the slave will\n    not be set to blocked on the master.\n  * Bakery is not compatible with modules that takeover core Drupal's login and\n    registration forms, e.g. ldapprov.\n\nFurther information and support:\n===========================================\nConsult the online documentation at http://drupal.org/node/567410 for more\ninformation.\n\nPlease use the public issue queue of Bakery for all bugs and feature requests:\nhttp://drupal.org/project/issues/bakery\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felusivemind%2Fbakery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felusivemind%2Fbakery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felusivemind%2Fbakery/lists"}