3

オープンID認証のテストコードに取り組んだ後、休憩を取り、戻ってきたときに、GAEからのこの奇妙な警告メッセージに直面しました。

Error: Unauthorized
Your client does not have permission to the requested URL /.

これが私が.plコードと.yamlの両方に使用しているコードです

version: 1
runtime: python
api_version: 1

builtins:
- remote_api: on

handlers:
- url: /
  script: do_openid_login.py
  login: required
  auth_fail_action: unauthorized

- url: /_ah/login_required
  script: do_openid_login.py
  login: required
  auth_fail_action: unauthorized

class MyLogin(webapp.RequestHandler):
    def get(self):
        user = users.get_current_user()
        if user:
            greeting = ("Welcome, %s %s %s! (<a href=\"%s\">sign out</a>)" %
                        (user.nickname(), user.email(), user.user_id(), users.create_logout_url("/")))
        else:
            greeting = ("<a href=\"%s\">Sign in or register</a>." %
                        users.create_login_url("/"))

        self.response.out.write("<html><body>%s</body></html>" % greeting)


application = webapp.WSGIApplication([
  ('/', MyLogin),
], debug=True)


def main():
  run_wsgi_app(application)

if __name__ == '__main__':
  main()

何か変わったことはありますか?または私は愚かなことをしましたか?ありがとう。

4

1 に答える 1

4

これに設定/するlogin: requiredと、アクセスする前にすでにログインしている必要があります。

login: requiredほとんどの場合、にログインせずにテストしていてapp.yaml、すでにログインしています。その行を追加すると、すべてが正常に見えましたが、ログアウトするかサーバーを再起動すると、ログインしなくなったため、エラーが発生しました。

エクスペリエンスを損なわないように、URLマッピングと、そのパラメーターを持つ必要のあるURLとそうでないURLを再考する必要があります。ユーザーがログインしていない場合はリダイレクトを使用するか、そうでない場合は別の応答を表示することも検討してください。

于 2012-06-26T10:27:11.350 に答える