使用Velruse进行Kotti认证:OpenID、OAuth2、Google、Yahoo、Live、Facebook、Twitter和其他
项目描述
kotti_velruse 是一个 Kotti 插件,它通过 Velruse 提供认证,使用方法包括:OpenID、OAuth2、Google、Yahoo、Live、Facebook、Twitter和其他
对于迫不及待的人来说
这里有一个演示如何使用它的示例。只需在干净的虚拟环境中运行以下命令。
git clone https://github.com/frgomes/kotti_velruse_demo.git cd kotti_velruse_demo ./run-server.sh
设置
在 kotti.configurators 中插入 kotti_velruse.kotti_configure
kotti.configurators = kotti_velruse.kotti_configure kotti_accounts.kotti_configure # other plugins
在 [app:main] 部分下方插入以下块
[app:main] ### -------------------------------------------------------------------------- # velruse configuration # # Module velruse.app.includeme looks for entries named "provider." in order # to discover which providers are configured. # # NOTE: these configurations must be inside [app:kotti] # ### #--- # Please adjust variable REALM # # Make sure that: # # 1. your browser is able to resolve the FQDN # 2. your Kotti server is able to resolve the FQDN # #--- realm=http://www.example.com endpoint = %(realm)s:6543/logged_in store = memory # store = redis # store.host = localhost # store.port = 6379 # store.db = 0 # store.key_prefix = velruse_ustore # OpenID # Despite a single provide.openid is declared, you can specify multiple # URLs that should be used for connecting to multiple OpenID endpoints. # See: login.mako for an example of how this can be done provider.openid.realm=%(realm)s provider.openid.store=openid.store.memstore:MemoryStore # Google (this an alias to Google Hybrid, for backward compatibility) provider.google.realm=%(realm)s provider.google.consumer_key=CHANGE-ME provider.google.consumer_secret=CHANGE-ME provider.google.scope=CHANGE-ME # Google Hybrid #provider.google_hybrid.realm=%(realm)s #provider.google_hybrid.consumer_key=CHANGE-ME #provider.google_hybrid.consumer_secret=CHANGE-ME #provider.google_hybrid.scope=CHANGE-ME # Google OAuth2 provider.google_oauth2.consumer_key=CHANGE-ME provider.google_oauth2.consumer_secret=CHANGE-ME provider.google_oauth2.scope=CHANGE-ME # Yahoo provider.yahoo.realm=%(realm)s provider.yahoo.consumer_key=CHANGE-ME provider.yahoo.consumer_secret=CHANGE-ME # Live provider.live.client_id=CHANGE-ME provider.live.client_secret=CHANGE-ME provider.live.consumer_key=CHANGE-ME provider.live.consumer_secret=CHANGE-ME # Twitter provider.twitter.consumer_key=CHANGE-ME provider.twitter.consumer_secret=CHANGE-ME # Facebook provider.facebook.app_id=CHANGE-ME provider.facebook.app_secret=CHANGE-ME provider.facebook.consumer_key=CHANGE-ME provider.facebook.consumer_secret=CHANGE-ME provider.facebook.scope=email,publish_stream,read_stream,create_event,offline_access # LinkedIn provider.linkedin.consumer_key=CHANGE-ME provider.linkedin.consumer_secret=CHANGE-ME # Github provider.github.consumer_key=CHANGE-ME provider.github.consumer_secret=CHANGE-ME provider.github.scope=CHANGE-ME # BitBucket provider.bitbucket.consumer_key=CHANGE-ME provider.bitbucket.consumer_secret=CHANGE-ME # MailRU provider.mailru.app_id=CHANGE-ME provider.mailru.app_secret=CHANGE-ME provider.mailru.consumer_key=CHANGE-ME provider.mailru.consumer_secret=CHANGE-ME ### --------------------------------------------------------------------------
请调整 development.ini 中的 realm 变量。
根据您的联盟密钥和密码相应地调整提供者配置。
按照以下方式导航到页面 /login
$ firefox http://localhost:6543/login
工作原理
kotti_velruse 允许用户在Google、Yahoo、LinkedIn、Twitter、Facebook或任何启用OpenID的提供者上使用任何已有的身份。
kotti_velruse 负责整个身份验证工作流程,从用户选择身份验证提供者开始,到身份验证提供者响应包含用户详细信息(如姓名和电子邮件地址)的记录结束。kotti_velruse 还负责将用户凭据分配给当前浏览会话。
kotti_velruse 不负责以任何方式创建或管理用户凭据。kotti_velruse 也不负责查询用户凭据,以找到与认证用户身份匹配的凭据。这些任务由 kotti_accounts 执行,它拦截 kotti_velruse 在用户成功认证时发出的通知。
另请参阅:kotti_accounts
依赖项
此插件依赖于以下修改后的版本
velruse: https://github.com/frgomes/velruse/tree/feature.kotti_auth
openid-selector: https://github.com/frgomes/openid-selector
支持
请在上面的页面顶部找到链接。
变更日志
0.1 (未发布)
初始版本,作为一个velruse的示例创建。请参阅:http://github.com/frgomes/velruse/tree/feature.kotti_auth
0.2 (2013年10月31日)
作为合适的Kotti插件发布的初始版本。
0.3 (2013年11月2日)
尊重属性‘came_from’,以便返回到上一页。
与处理事件 AfterKottiVelruseLoggedIn 的 kotti_accounts(或其他模块)之间的通信协议更好。
当 kotti_accounts 返回有效的 Principal 时,在当前浏览器会话中创建凭据。
代码审查。
更好的文档。
0.3.1 (2013年11月6日)
与 kotti_accounts 的更好的集成
0.3.2 (2013年11月11日)
与偏好页面 (/@@prefs) 的更好集成
0.3.3 (2013年11月18日)
将版本号移至 package __init__.py
将 request 作为 event 的一部分传递到 AfterKottiVelruseLoggedIn
更好的文档