AngularJS与Flask身份验证
我正在使用AngularJS构建一个Web应用程序,并使用Flask框架构建REST-API.
该应用程序由两部分组成: >用户无需登录的部分:他们可以注册,登录,查看功能…… 为了简单起见,我想在两个角度应用程序中将这两个部分分开,让Flask根据您的登录情况将您引导到正确的应用程序. 我想知道这是否是一个好方法?我认为有了这个,我可以保持身份验证非常简单. 解决方法
我不确定两个独立的应用程序是个好主意.
如果你这样做,你似乎会有相当多的重复,因为我不认为这两个应用程序是互斥的.至少,我想用户登录后也可以使用公共选项,对吧?这意味着公共应用程序(客户端和服务器端)的很大一部分必须是受保护应用程序的一部分.这听起来很难维护. 还要考虑用户体验.用户必须在登录和注销时下载整个新应用程序,至少是第一次,直到它进入浏览器的缓存.根据应用程序的大小,可能需要几秒钟的等待时间. 标准方法是使用一个Angular应用程序和一个Flask应用程序. Angular应用程序开始并显示所有可用选项,并取决于用户将Angax请求发送给Flask的用户. 如果用户尝试执行需要登录的操作,则Flask将响应代码401错误.然后,Angular可以显示登录对话框以获取登录凭据,然后再次提交Ajax请求,现在使用凭据,可能作为通过安全HTTP的HTTP基本身份验证.从那时起,Angular可以将登录凭据附加到所有请求,以便用户现在可以使用所有选项. 如果您不想在每个请求中发送登录信息,那么您可以在Flask应用程序中使用get_auth_token端点获取凭据并将令牌发送回Angular.然后Angular可以将令牌附加到所有后续请求. 然后,Angular中的注销选项会丢弃凭据和/或令牌以再次成为未经授权的. 我在this answer中详细解释了其中的一些想法.尽管该问题的上下文是Node.js,但这些原则也适用于Flask. 您还可以查看我关于该主题的教程.我在服务器上使用Flask,在客户端上使用Knockout.js,但是如果你使用Angular而不是Knockout,概念应该直接翻译.以下是其中三个: > Designing a RESTful API with Python and Flask (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |