繁体   English   中英

让网站用户访问api flask

[英]Let website user access api flask

我有两个Web应用程序。 一个是网站。 另一个是API。 两者都是用烧瓶建造的。 他们使用不同的身份验证方法。

该网站使用flask-login库。 具体来说,如果user.check_password提供的user.check_password为true,则使用login_user

api使用加密签名的令牌。 api由移动应用程序使用(例如ios)。 这些应用程序调用/api/login和POST与您在网站上预期的用户名和密码相同。 然后api返回一个令牌,应用程序将来存储并用于身份验证。 令牌使用itsdangerous库生成。 具体来说,它是使用TimedJSONWebSignatureSerializer创建的。

我遇到了一个令人困惑的问题,现在,我们的某个网站页面需要访问我们的api。 当然api不允许访问,因为用户没有正确生成的身份验证令牌。 我可以控制代码的每个部分,但我不确定在这种情况下最优雅的解决方案是什么。 我应该停止使用其中一种身份验证机制吗? 我应该以某种方式为网站用户存储api身份验证令牌吗?

任何意见,将不胜感激。

更新当我想到这个问题时,我发现我可以更改login_user使用的令牌生成过程。 如果login_user使用与api相同的令牌,那么当用户需要通过网站发出api请求时,我可能会从会话中获取令牌。 目前还不清楚这是不是很疯狂。

我结束的方式是结合两种方法。 user_logged_in会在用户登录时触发。我使用该方法生成api-token并在登录时将其存储在用户对象中。 然后,当用户想要进行api调用时,只需从用户对象中检索令牌。

我不确定这是不是最好的做法,但似乎工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM