我有问题在Google+OAuth使用龙卷风框架。我在nginx服务器上使用AngularJS作为前端,python tornado作为后端。我从AngularJS向Google+API发送HTTP请求,我的tornado API重定向到Google登录。成功登录后,它重定向回到我的应用程序。在重定向的时候,我认为它会自动刷新,即有两个来自谷歌的重定向调用。
查看tornado OAuth2中的两个HTTP重定向调用
这是我的代码:
class GoogleOAuth2LoginHandler(tornado.web.RequestHandler, tornado.auth.GoogleOAuth2Mixin):
@tornado.gen.coroutine
def get(self):
if self.get_argument('code', False):
user = yield self.get_authenticated_user(
redirect_uri='http://your.site.com/auth/google',
code=self.get_argument('code')
)
# Save the user with e.g. set_secure_cookie
else:
yield self.authorize_redirect(
redirect_uri='http://your.site.com/auth/google',
client_id=self.settings['google_oauth']['key'],
scope=['profile', 'email'],
response_type='code',
extra_params={'approval_prompt': 'auto'}
对于完全相同的配置(Tornado+Nginx+AngularJS)我们也遇到了同样的问题。我只是重写了OAuth身份验证部分,没有龙卷风和问题解决。您可以使用tornado的AsyncHttpClient,但我使用了aiohttp,因为我在Asyncio中托管了tornado。下面是新代码,注释部分是旧代码。
from backend.helpers.async_oauth2.client import Client
oauth_client = Client(app_settings.security.google.client_id, app_settings.security.google.client_secret,
app_settings.security.google.redirect_uri, "https://accounts.google.com/o/oauth2/auth"
, "https://accounts.google.com/o/oauth2/token")
access = await oauth_client.get_token(code, grant_type="authorization_code")
# access = await self.get_authenticated_user(
# redirect_uri=app_settings.security.google.redirect_uri,
# code=code)
# user = await self.oauth2_request(
# "https://www.googleapis.com/oauth2/v1/userinfo",
# access_token=str(access["access_token"]))
user = await oauth_client.http_get(
"https://www.googleapis.com/oauth2/v1/userinfo?{}".format(
url_parse.urlencode({'access_token':str(access["access_token"])})))
错误代码 宏定义 #define RT_EOK 0 无错误 #define RT_ERROR 1 一般错误 #define RT_ETIMEOUT 2 超时错误 #define RT_EFULL 3 资源已满 #define RT_EEMPTY 4 资源已空 #define RT_ENOMEM 5 内存不足 #de
说明:编写一条if语句,验证字符串是否包含字符。 添加一个if语句,检查是否大于零。不要忘记if语句末尾的!如果字符串中确实有一些字符,则打印用户的单词。否则(即:语句),请打印空。您需要多次运行代码,测试空字符串和带字符的字符串。当你确信你的代码可以工作时,继续下一个练习。 我被卡住了,因为我一直遇到以下错误。我做错了什么?
我的服务器上的Https不工作并得到。我尝试了太多的东西,但无法得到任何结果。我的带有Nginx反向代理的HttpSpring启动服务器工作得很好。 下面是我的 /etc/nginx/conf.d/*. conf文件: 我已经检查了我的443端口是否打开并正在监听。 我不知道我哪里做错了任何帮助都将感激不尽
1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 1012:不能读取系统表中的记录 1020:记录已被其他用户修改 1021:硬盘剩余空间不足,请加大硬盘可用空间 1022:关键字重复,更改记录失败
public static final int ERROR_CODE_SUCCESS = -1; public static final int ERROR_CODE_INTERNAL_ERROR = 0; public static final int ERROR_CODE_INVALID_REQUEST = 1; public static final int ERROR_CODE_NETWO
尝试按照microsoft说明获取访问令牌。但是我得到了一个错误,因为它没有解。我做错了什么,这对我意味着什么?在此输入映像描述请求:https://log in . Microsoft online . com/{ tenant }/oauth 2/v 2.0/authorize * auth _ code:client _ id https://log in . Microsoft onlin