{"id":13500869,"url":"https://github.com/mozilla/persona","last_synced_at":"2025-12-16T18:20:41.661Z","repository":{"id":62444031,"uuid":"1578548","full_name":"mozilla/persona","owner":"mozilla","description":"Persona is a secure, distributed, and easy to use identification system.","archived":true,"fork":false,"pushed_at":"2019-02-22T02:52:54.000Z","size":40219,"stargazers_count":1829,"open_issues_count":32,"forks_count":265,"subscribers_count":88,"default_branch":"future","last_synced_at":"2024-10-29T10:03:14.535Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://login.persona.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-04-06T18:28:20.000Z","updated_at":"2024-10-11T12:20:52.000Z","dependencies_parsed_at":"2022-11-01T22:30:31.897Z","dependency_job_id":null,"html_url":"https://github.com/mozilla/persona","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fpersona","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fpersona/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fpersona/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fpersona/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/persona/tar.gz/refs/heads/future","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245449654,"owners_count":20617190,"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":[],"created_at":"2024-07-31T22:01:17.340Z","updated_at":"2025-12-16T18:20:41.610Z","avatar_url":"https://github.com/mozilla.png","language":"JavaScript","readme":"\u003c!-- This Source Code Form is subject to the terms of the Mozilla Public\n   - License, v. 2.0. If a copy of the MPL was not distributed with this\n   - file, You can obtain one at http://mozilla.org/MPL/2.0/. --\u003e\n\n[![Build Status](https://travis-ci.org/mozilla/persona.svg?branch=future)](https://travis-ci.org/mozilla/persona)\n\nThis repository contains the core [Mozilla Persona][] services.\nPersona is a login system based on the [BrowserID protocol][].\n\nTo learn about using Persona on your site, check out [our documentation][Persona Docs] on MDN.\n\n[Mozilla Persona]: https://login.persona.org\n[BrowserID protocol]: https://github.com/mozilla/id-specs\n[Persona Docs]: https://developer.mozilla.org/docs/persona\n\n## Repository Contents\n\nThis repository contains several projects related to Persona:\n\n* __The Persona Fallback IdP__:\n  A fallback Identity Provider (IdP) for users without native support for Persona via their email provider. Written in node.js, hosted at https://login.persona.org.\n\n* __The Persona Remote Verification Service__:\n  A stateless node.js server which handles cryptographic verification of identity assertions. Hosted at verifier.login.persona.org, but easy to run locally.\n\n* __The Cross-Browser Persona Support Library__:\n  The `include.js` file that provides the `navigator.id` API for browsers without native support for Persona. This also includes the code for the dialog shown to users of those browsers.\n\n* __Sample and Test Code__:\n  For all of the above.\n\n## Getting Started\n\nThe Persona team uses Git and GitHub for all of our development and issue tracking.\nIf you'd like to contribute code back to us, please do so using a [Pull Request][].\nIf you get stuck and need help, you can find the core team on our [public mailing list][dev-identity] or in #identity on irc.mozilla.org.\n\n[Pull Request]: https://help.github.com/articles/using-pull-requests\n[dev-identity]: https://lists.mozilla.org/listinfo/dev-identity\n\n### Install Dependencies\n\nBrowserID needs the following dependencies before it can run:\n\n* node.js (\u003e= 0.8.11)\n* libgmp3\n* g++\n\nFor detailed instructions for your specific operating system, check out the `SETUP` docs in the `docs/` folder.\n\n### Running BrowserID Locally\n\nTo run the BrowserID service locally:\n\n1. Clone the repository to your machine.\n2. Run `npm install` from the root of your clone.\n3. Run `npm start` from the root of your clone.\n\nWhen you run `npm start`, it will print several URLs to your terminal.\nYou can test that everything is working by visiting the URL for the `example` (RP) site.\nLook for a line like this in the terminal:\n\n    example (10361): running on http://127.0.0.1:10001\n\nYou can stop the services by typing Control-C in the terminal.\n\n### Staying Up to Date\n\nTo stay up to date with BrowserID:\n\n1. Use `git pull` to retrieve new changes.\n2. Delete both the `var` and `node_modules` folders in the root of your local clone.\n3. Run `npm install` from the root of your local clone.\n\n## Testing\n\n### Local testing:\nUnit tests can be run by invoking `npm test` at the top level.\nAt present, there are three classes of unit tests to be run:\n\n* Backend unit tests against a custom, zero-dependency JSON database.\n* Backend unit tests against MySQL, what we use in production.\n* Frontend unit tests run headlessly against PhantomJS.\n\nYou can control which tests are run using the `WHAT_TESTS` env var, see `scripts/test` for details.\n\n### Continuous Integration Testing:\n\nIntegration tests are done with [Travis-CI][].\nIt is recommended that you setup [Travis-CI][] for your BrowserID fork so that tests are automatically run when you push changes.\nThis will give the BrowserID team confidence that your changes both function correctly and do not cause regressions in other parts of the code.\nConfiguration files are already included in the repo but some setup is necessary.\n\n1. Sign in to [GitHub][]\n2. Open [Travis-CI][]\n3. Click \"Sign in with GitHub\" if you are not signed in. If you are signed in, click on your username then \"Profile\" and go to step 5.\n4. Click \"Allow\" if this is your first time signing in.\n5. Find \"browserid\" in \"Your Repositories\"\n6. Move the switch from \"OFF\" to \"ON\"\n7. Open your fork of BrowserID on [GitHub][]\n8. Click the \"Settings\" button\n9. Click \"Service Hooks\" and find the \"Travis\" Service Hook\n10. Paste in your \"Token\" which you can find it on your [Travis-CI Profile][].\n11. Ensure that \"Travis\" has a green radio button\n12. Push to your fork and return to [Travis-CI][]. Watch the tests run.\n\n[Travis-CI]: http://travis-ci.org\n[GitHub]: https://github.com\n[Travis-CI Profile]: https://travis-ci.org/profile\n\n## LICENSE\n\nAll source code here is available under the [MPL 2.0][] license, unless otherwise indicated.\n\n[MPL 2.0]: https://mozilla.org/MPL/2.0/\n\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fpersona","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Fpersona","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fpersona/lists"}