2
所以我想为我的GAE应用程序做我自己的openID登录,我遇到了一些问题。它在我的本地主机上运行时运行良好,但当我尝试部署它时,它不运行。我认为这是因为它实际上并未尝试到达本地主机上的openID服务器。OpenID登录不太工作
这是我的错误:
File "/base/data/home/apps/s~exployretrial/1.359795154076948420/blog.py", line 97, in get
providerlist.append(users.create_login_url(federated_identity=uri))
File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/users.py", line 246, in create_login_url
req.set_federated_identity(federated_identity)
File "cpp_message.pyx", line 124, in cpp_message.SetScalarAccessors.Setter (third_party/apphosting/python/protobuf/proto1/cpp_message.cc:2229)
TypeError: <type 'tuple'> has type <type 'tuple'>, but expected one of: str, unicode
这里是我的Python代码:
providers = {
'Google' : 'www.google.com/accounts/o8/id', # shorter alternative: "Gmail.com"
'Yahoo' : 'yahoo.com',
'MySpace' : 'myspace.com',
'AOL' : 'aol.com',
'MyOpenID' : 'myopenid.com'
# add more here
}
class Login(BlogHandler):
def get(self):
user = users.get_current_user()
providerlist = []
if user: # signed in already
self.redirect('/home')
else: # let user choose authenticator
for uri in providers.items():
providerlist.append(users.create_login_url(federated_identity=uri))
self.render('login.html', user = user, providerlist = providerlist)
HTML代码:
<ul>
{% for provider in providerlist %}
{% if loop.index == 1 %}
<li><a href="{{ provider }}"><img src="http://openid.net/wordpress-content/uploads/2007/10/aol.png"></a></li>
{% elif loop.index == 2 %}
<li><a href="{{ provider }}"><img src="http://openid.net/images/get-logos/google.png"></a></li>
{% elif loop.index == 3 %}
<li><a href="{{ provider }}"><img src="http://openid.net/wordpress-content/uploads/2009/11/yahoo.png"></a></li>
{% elif loop.index == 4 %}
<li><a href="{{ provider }}"><img src="http://openid.net/images/get-logos/myopenid.png"></a></li>
{% elif loop.index == 5 %}
<li><a href="{{ provider }}"><img src="http://openid.net/wordpress-content/uploads/2007/10/logo_myspace_s.gif"></a></li>
{% endif %}
{% endfor %}
</ul>
因此,任何有识之士将不胜感激,只是让我知道你是否需要更多信息。
谢谢!
我已经这样做了,当我做一个简单的不使用任何HTML的Python脚本,但我只是希望它看起来像样的标志和一切。 – clifgray
@clifgray嗯..如果尝试整合此插件,可以让它看起来更好一点:http://code.google.com/p/openid-selector/ – Lipis