OAuth 2.0对Google和Google应用程序帐户的身份验证
django-googleauth的Python项目详细描述
简化的oauth+openid连接,通过google进行身份验证。
谷歌过去很简单,但后来谷歌决定放弃他们的openid服务。谷歌。googleauth已经迁移到OAuth 2.0 + OpenID Connect,这并不是很好,因为它需要更多的配置才能运行。
googleauth的构建是为了提供一种简单的方法来添加针对googleappsforbusinessdomain的身份验证,特别是针对单个组织。如果您正在寻找通用的社交身份验证解决方案,则此软件包不是最佳选择。改为签出python-social-auth。
在谷歌上设置内容
- 登录到Google API Console。
- 如果需要,打开现有的项目或新建一个项目。
- 在apis&;auth菜单项下,单击apis。
- 打开google+api。
- 在apis&;auth菜单项下,单击credentials。
- 单击create new client id按钮。
- 选择web application作为应用程序类型,添加您的域作为javascript源,并将完整域和路径添加到oauth回调(有关如何找到此url的信息,请参见下文)。单击create client id按钮完成。
- 您将需要django设置中的客户机id和客户机机密值,因此请保持此窗口打开或复制它们以备以后使用。
回调url
回调url是根据您首选的url方案、站点所在的域以及在django中装载googleauth url配置的路径构造的。
假设您使用的是https,并在根url上安装了googleauth url配置。您的回拨URL将类似于:
https://<your-domain>/callback/
好的,现在假设您使用的是http,并且已经在/accounts/下安装了googleauth url配置:
http://<your-domain>/accounts/callback/
django设置
设置和配置
以下设置应放在settings.py中。
添加到已安装的应用程序:
INSTALLED_APPS = ( ... 'googleauth', ... )
添加到身份验证后端:
AUTHENTICATION_BACKENDS = ( 'googleauth.backends.GoogleAuthBackend', ... )
所需设置:
# client ID from the Google Developer Console GOOGLEAUTH_CLIENT_ID = '' # client secret from the Google Developer Console GOOGLEAUTH_CLIENT_SECRET = '' # your app's domain, used to construct callback URLs GOOGLEAUTH_CALLBACK_DOMAIN = ''
可选设置:
# callback URL uses HTTPS (your side, not Google), default True GOOGLEAUTH_USE_HTTPS = True # restrict to the given Google Apps domain, default None GOOGLEAUTH_APPS_DOMAIN = '' # get user's name, default True (extra HTTP request) GOOGLEAUTH_GET_PROFILE = True # sets value of user.is_staff for new users, default False GOOGLEAUTH_IS_STAFF = False # list of default group names to assign to new users GOOGLEAUTH_GROUPS = []
url路由
添加URL配置:
urlpatterns = patterns('', ... (r'^auth/', include('googleauth.urls')), ... )
GoogleAuth不需要安装在/auth/下,它可以到任何地方。把它放在你认为适合你特定应用的地方。