{"id":13699150,"url":"https://github.com/authlib/loginpass","last_synced_at":"2025-05-04T07:31:41.384Z","repository":{"id":31643777,"uuid":"128506236","full_name":"authlib/loginpass","owner":"authlib","description":"Login with Google, GitHub, Twitter, Facebook and many other networks.","archived":false,"fork":false,"pushed_at":"2022-05-16T09:59:54.000Z","size":202,"stargazers_count":290,"open_issues_count":23,"forks_count":67,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-05-01T10:36:07.624Z","etag":null,"topics":["authlib","login","oauth1-client","oauth2","oauth2-client"],"latest_commit_sha":null,"homepage":"https://authlib.org/","language":"Python","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/authlib.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":null,"security":null,"support":null}},"created_at":"2018-04-07T07:26:46.000Z","updated_at":"2024-04-26T19:11:43.000Z","dependencies_parsed_at":"2022-08-07T16:30:40.637Z","dependency_job_id":null,"html_url":"https://github.com/authlib/loginpass","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authlib%2Floginpass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authlib%2Floginpass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authlib%2Floginpass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authlib%2Floginpass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/authlib","download_url":"https://codeload.github.com/authlib/loginpass/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224390582,"owners_count":17303579,"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":["authlib","login","oauth1-client","oauth2","oauth2-client"],"created_at":"2024-08-02T19:01:04.840Z","updated_at":"2024-11-13T04:30:28.535Z","avatar_url":"https://github.com/authlib.png","language":"Python","funding_links":["https://patreon.com/lepture"],"categories":["Python"],"sub_categories":[],"readme":"Authlib Loginpass\n=================\n\nSocial connections powered by [Authlib][]. This library is a part of Authlib project.\nIt works well with Authlib v0.14.3+.\n\n[Authlib]: https://authlib.org/\n\n\u003ca href=\"https://lepture.com/donate\"\u003e\u003cimg src=\"https://img.shields.io/badge/$-donate-ff69b4.svg?maxAge=2592000\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://patreon.com/lepture\"\u003e\u003cimg src=\"https://img.shields.io/badge/I0-patreon-f96854.svg?maxAge=2592000\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://travis-ci.org/authlib/loginpass\"\u003e\u003cimg src=\"https://api.travis-ci.org/authlib/loginpass.svg?branch=master\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/loginpass/\"\u003e\u003cimg src=\"https://badgen.net/pypi/v/loginpass\" alt=\"PyPI Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://twitter.com/intent/follow?screen_name=authlib\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/authlib.svg?maxAge=3600\u0026style=social\u0026logo=twitter\u0026label=Follow\" alt=\"Follow Twitter\"\u003e\u003c/a\u003e\n\n```python\nfrom flask import Flask\nfrom authlib.integrations.flask_client import OAuth\nfrom loginpass import create_flask_blueprint\nfrom loginpass import Twitter, GitHub, Google\n\napp = Flask(__name__)\noauth = OAuth(app)\n\ndef handle_authorize(remote, token, user_info):\n    if token:\n        save_token(remote.name, token)\n    if user_info:\n        save_user(user_info)\n        return user_page\n    raise some_error\n\nbackends = [Twitter, GitHub, Google]\nbp = create_flask_blueprint(backends, oauth, handle_authorize)\napp.register_blueprint(bp, url_prefix='')\n```\n\nUseful Links\n------------\n\n- Authlib Homepage: \u003chttps://authlib.org/\u003e\n- Authlib Repository: \u003chttps://github.com/lepture/authlib\u003e\n\nFeatures\n--------\n\nAuthlib Loginpass contains lots of connections (see below), every connection has a\n`profile()` method which returns the same format of user info. It supports OAuth 1,\nOAuth 2 and OpenID Connect for now.\n\nThe user info that `profile()` returns is standardized with [OpenID Connect UserInfo\nclaims](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims),\nnot something made by me.\n\nConnections\n-----------\n\nConnections that Authlib Loginpass contains:\n\n- [x] Battle.net\n- [x] Google\n- [x] GitHub\n- [x] Gitlab\n- [x] Twitter\n- [x] Facebook\n- [x] Dropbox\n- [x] Reddit\n- [x] Linkedin\n- [x] Azure\n- [x] Discord\n- [x] Slack\n- [ ] Jira\n- [x] StackOverflow\n- [x] Bitbucket\n- [x] Auth0\n- [x] Strava\n- [x] Spotify\n- [x] Yandex\n- [x] Twitch\n- [x] VK\n- [x] [Ory Hydra](https://www.ory.sh/docs/hydra/)\n\nUsage\n-----\n\nLoginpass is just a simple wrapper around [Authlib][], it is configured apps\nready to use with [Flask][] and [Django][]. Checkout the\nexamples for details.\n\n[Flask]: https://docs.authlib.org/en/latest/client/flask.html\n[Django]: https://docs.authlib.org/en/latest/client/django.html\n\n\nAlternatives\n------------\n\nMost of the time, you don't have to use loginpass, you can just register\na remote app with Authlib's framework integrations. Checkout our demo on\nOAuth clients for Flask, Django, Starlette and FastAPI:\n\n\u003chttps://github.com/authlib/demo-oauth-client\u003e\n\nLicense\n-------\n\nLoginpass is a group member of Authlib, it is licensed under BSD.\nAuthlib commercial license applies to this project too, you can get\na commercial license at [Authlib Commercial Plans](https://authlib.org/plans).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauthlib%2Floginpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fauthlib%2Floginpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauthlib%2Floginpass/lists"}