Integrate Google, Facebook, Github & Twitter login in kivy applications
MIT License
GOOGLE_CLIENT_ID=<Your-client-id-from-google-cloud-console>
GOOGLE_CLIENT_SECRET=<Your-Client-Secret>
FACEBOOK_CLIENT_ID=<Your-Facebook-Client-id>
FACEBOOK_CLIENT_SECRET=<Your-Facebook-Client-secret>
GITHUB_CLIENT_ID=<Github-Client-id>
GITHUB_CLIENT_SECRET=<Github-Client-secret>
Make sure you go through the prerequisites for the login methods you're going to integrate in your application before moving further
The example below shows integrating google login. Similarly other login methods can also be used.
from kivyauth.google_auth import initialize_google, login_google, logout_google
def build(self):
initialize_google(self.after_login, self.error_listener)
after_login
is a function to be called upon successful login with name
, email
, and photo url
of the user. So, create a success listener function which accepts three parameters and perform after-login stuffs(like updating UI, etc.). error_listener
is called in case of any error and it doesn't accept any argument.
on_start
method as below(mention only login providers you are using in your app):def on_start(self):
if auto_login(login_providers.google):
self.current_provider = login_providers.google
elif auto_login(login_providers.facebook):
self.current_provider = login_providers.facebook
elif auto_login(login_providers.github):
self.current_provider = login_providers.github
elif auto_login(login_providers.twitter):
self.current_provider = login_providers.twitter
Next, call login_google()
upon a button click to initiate login process.
Similarly, to logout, call logout_google
as
logout_google(self.after_logout)
after_logout
is a function to be called after user gets logged out. For example, to update UI.
kivyauth
as a requirement in the buildozer.spec filerequirements = python3,kivy,kivyauth==2.3.3
kivyauth.android
while those for desktops are inside kivyauth.desktop
login_providers
are now inside kivyauth
rather than kivyauth.providers
Contributing: Contributions are more than welcome. Looking for contributions in making it cross-platform(specifically for iOS) and better documentation.
Feel free to ping me or raise an issue if you want to talk about this project or Kivy in general.