首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Flask和谷歌OAuth2最佳实践

Python Flask和谷歌OAuth2最佳实践
EN

Stack Overflow用户
提问于 2014-08-08 04:23:32
回答 1查看 386关注 0票数 0

我有一个具有名称、电子邮件和密码的User模型。

如果用户正常注册(通过表单),则使用passlib对存储在我的数据库中的密码进行哈希处理。然后,生成一个令牌并将其返回给用户的客户端。令牌是玩家id的序列化。要验证玩家,他只需使用基本身份验证的密码字段中的令牌登录,而我只需反序列化令牌并通过反序列化的id查找玩家。此外,玩家可以使用其密码来验证自己。

使用谷歌OAuth2的问题是,玩家不设置密码;他只向服务器发送谷歌验证令牌,服务器将令牌发送给谷歌并获取用户的电子邮件、姓名等。

如何为用户生成密码?我应该在这里做什么?

我现在对Google OAuth2用户注册的解决办法很简单:从Google获取用户信息,生成一个假密码(经过哈希处理),然后为用户生成身份验证令牌。然后,将伪造的密码替换为auth令牌(散列后的令牌)并将其作为用户的密码插入。然后将身份验证令牌返回给用户的客户端。

换句话说,auth令牌成为密码。现在我的身份验证令牌也不会过期。

显然,这是一个巨大的黑客攻击。这样做的正确方法是什么?我应该在每次用户需要验证自己的时候就ping Google吗?

EN

回答 1

Stack Overflow用户

发布于 2014-08-08 23:46:28

一种选择是要求用户在使用OAuth2后向您的站点注册,但这很愚蠢--您首先使用OAuth2来保存它。

我只是不会为这个用户保存密码。你为什么需要它呢?正如您所说的,他正在通过OAuth2进行身份验证,您需要ping OAuth2提供商来验证用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25191537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档