NotAllowedError 在 Google App Engine 中使用 users.create_login_url
Posted
技术标签:
【中文标题】NotAllowedError 在 Google App Engine 中使用 users.create_login_url【英文标题】:NotAllowedError using users.create_login_url in Google App Engine 【发布时间】:2017-03-05 00:31:16 【问题描述】:根据How-to guide 中的示例代码,我在使用 Google App Engine 中的 users.create_login_url
的一个非常基本的示例时遇到了问题。该示例在本地开发服务器中运行良好,但在部署到 appspot.com 时无法正常运行。
import webapp2
import urllib2
from google.appengine.api import users
class Main(webapp2.RequestHandler):
def get(self):
login_url = users.create_login_url('/')
self.response.write(login_url)
app = webapp2.WSGIApplication([
('/', 'Main'),
], debug=True)
this one 等以前的问题表明问题是使用 Google Apps 域而不是 Google Accounts API,我认为这是指下图所示的设置。更改这些设置并不能解决问题。
这可能是什么原因造成的?
【问题讨论】:
实际发生了什么?这个生成的 url 是什么样子的? 它应该生成一个类似 /ServiceLogin?service=ah&passive=true&continue=appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://…... 的 URL,它将用户发送到登录页面,然后返回原始页面。相反,它从 login_url = users.create_login_url('/') 行抛出 NotAllowedError 在隐身模式下可能正常工作(可能是错误的用户登录到 Google 帐户) 【参考方案1】:我最终复制了它,我注意到您的代码存在问题(语法错误)。 在以下行中,删除“Main”上的素数并重试:
app = webapp2.WSGIApplication([ ('/', Main), ], debug=True)
如果您再次运行代码,您将能够获得显示的结果。 还要确保 app.yaml 文件中的处理程序是正确的。 您的 App Engine 设置似乎很好,除非您想使用不同的身份验证选项,否则该页面上的任何内容都不应更改。默认情况下,您的应用将使用 Google 帐户进行身份验证。
您可以使用以下代码运行一个简单的登录页面:
class Main(webapp2.RequestHandler):
def get(self):
# [START user_details]
user = users.get_current_user()
if user:
nickname = user.nickname()
logout_url = users.create_logout_url('/')
greeting = 'Welcome, ! (<a href="">sign out</a>)'.format(
nickname, logout_url)
else:
login_url = users.create_login_url('/')
greeting = '<a href="">Sign in</a>'.format(login_url)
# [END user_details]
self.response.write(
'<html><body></body></html>'.format(greeting))
app = webapp2.WSGIApplication([
('/', Main),
], debug=True)
对于 app.yaml:
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: main.app
【讨论】:
以上是关于NotAllowedError 在 Google App Engine 中使用 users.create_login_url的主要内容,如果未能解决你的问题,请参考以下文章
Vimeo 视频自动播放在 Safari 11 中不起作用:NotAllowedError
如何修复在flutter webview中无法访问视频流(NotAllowedError)以使用html5 + webRTC相机api?
iOS 11 Public beta 5 getUserMedia 无法正常工作
Initialization error Oracle Client not properly installed OracleHomeKey: OracleHomeDir: