Лучшее, о чем я могу думать, это;Вы можете попробовать показать ссылку на /_ah/login_required
, которая вызовет страницу входа OpenID и (надеюсь) также содержит кнопку «войти как кто-то еще».
Это не полностью решает проблему, так какпроблема осложняется несколькими поставщиками openid.
Невозможно заставить кого-либо выйти из сайта своего провайдера AFAIK.
Полный пример создания страницы входа / это не я:
Добавьте путь входа в систему к вашему app.yaml
- url: /_ah/login_required
script: app.py
Создайте обработчик входа OpenID для создания подходящего URL-адреса входа
class OpenIDHandler(webapp.RequestHandler):
def get(self):
"""Begins the OpenID flow/Google Apps discovery"""
self.redirect(users.create_login_url(
dest_url='http://yourappid.appspot.com',
_auth_domain=None,
federated_identity=self.request.get('domain')))
Добавьте обработчик OpenID вваше приложение wgsi (вероятно, main.py
):
def main():
ROUTES = [
('/_ah/login_required', handlers.OpenIDHandler),
]
application = webapp.WSGIApplication(ROUTES, debug=True)
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
Теперь вы можете посещать /_ah/login_required
всякий раз, когда вы хотите, чтобы кто-то получил запрос на вход в систему (или на странице «это не я»)