[英]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.