我有一個使用GAE用戶服務和fedarated登錄的應用程序。GAE用戶服務返回用戶暱稱屬性的xml
最近對於一個用戶,我在暱稱屬性中獲得了一個xml提要。
對於所有其他領域數據是確定
在細節:
我的寄存器處理:
class RegisterPersonHandler(UserPageHandler):
def get(self):
user = users.get_current_user()
if not user:
self.redirect(users.create_login_url(self.request.uri), abort=True)
return
person = Person.get_or_insert(user.user_id())
if not self._register(person, user):
logging.warning('Warning registration failed')
return
self.redirect("/")
def post(self):
self.view("No reason to be here Mr Jiggles ;-)")
return
@ndb.transactional()
def _register(self, person, user):
''' Registration process happens here
'''
# check if the person has info and if not create it
info = PersonInfo.query(ancestor=person.key).get()
if not info:
info = PersonInfo(id=user.user_id(), parent=person.key)
info.nick_name = user.nickname()
info.email = user.email()
info.put()
return True
在暱稱場,我得到以下字符串:
https://www.google.com/accounts/o8/id?id=[id_of_the_user]
打開我的瀏覽器,網址讓我下載一個XML具有以下內容:
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/accounts/o8/ud</URI>
</Service>
<Service priority="10">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/accounts/o8/ud?source=mail</URI>
</Service>
<Service priority="10">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/accounts/o8/ud?source=gmail.com</URI>
</Service>
<Service priority="10">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/accounts/o8/ud?source=googlemail.com</URI>
</Service>
<Service priority="10">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/accounts/o8/ud?source=profiles</URI>
</Service>
</XRD>
</xrds:XRDS>
我缺少什麼?
編輯
因爲這是毫無進展,我想至少知道:
我能相信這個綽號屬性格式返回一個字符串,該用戶的暱稱可用? 我已經想通了,這個屬性規定的危險,如果你想將其暴露在公衆的數據,由於大多數情況下beeing的「用戶名」或電子郵件地址...
BTW
從Docs
nickname()返回用戶的「暱稱」,一個可顯示的名稱。對於 Google帳戶用戶,如果該地址與 應用程序位於同一個域中,則暱稱爲用戶的電子郵件地址的 的「名稱」部分,否則爲用戶的完整電子郵件地址。對於OpenID 用戶,暱稱是OpenID標識符。
,有點later
電子郵件()返回用戶的電子郵件地址。如果您使用OpenID,則您不應該依賴此電子郵件地址來正確使用 。應用程序 應使用暱稱顯示名稱。
嗯,但我也看到該電子郵件() 返回用戶的電子郵件地址。如果你使用OpenID,你不應該依賴這個電子郵件地址是正確的。應用程序應該使用可顯示名稱的暱稱。 –