angular - ORDS RESTful 服务 + 带有身份验证的 Angular
问题描述
因此,我没有太多运气找到有关如何执行此操作的大量信息,所以我们开始吧。我正在使用 Oracle Apex + Angular,我希望我的前端内置 Angular,然后 Oracle Apex 作为后端和前端的中间人,使用 RESTful API(希望我做对了,我仍在学习这一切是如何工作的) .
到目前为止,我已经成功设置了 RESTful 服务,并且正在从我的 Angular 前端调用它并显示数据。我什至让基本身份验证工作。但是,显然在其中硬编码用户名和密码并不是很安全,所以我试图了解如何允许用户登录/注销并获取 Bearer 令牌(一小时后过期)然后传入而是在发出 GET 请求时。
据我所知,似乎我会创建一个登录页面,使用输入的信息调用正确的 URL,然后返回用于发出请求的令牌(或不基于登录信息是否正确) . 但是,我担心安全性,不知道这是否是一种安全的方法?即使数据库中的所有数据都只是测试虚拟数据,我也希望正确且尽可能安全地进行知识和实践。
如果这是一种安全且正确的方法,请告诉我,因为我不知道。如果不是,如果您能告诉我原因以及正确执行此操作方法的总体思路,那就太棒了!
这是我发现给我有用信息的教程:https ://blogs.oracle.com/developers/ords-oauth-20-authentication-with-oracle-apex-v2
解决方案
OAuth 通常用作第三方身份验证(机器对机器),因此我认为它不太适合您的用例。但大多数第一方身份验证方案都不是。
我有一个建议,它有点详细,所以我只给出一个粗略的轮廓。
- 创建 Apex 应用程序并使用它来管理您的用户/密码/授权
- 让您的用户通过您的 Angular 应用程序登录 Apex 应用程序 - 这将是棘手的部分。最简单的方法是使用 Apex 应用程序登录页面,并在登录后将其重定向到您的 Angular 应用程序。或者,您可以创建一个动态过程,该过程可以将来自 Angular 的用户/密码作为 API 调用,运行该
APEX_AUTHENTICATION.LOGIN
过程,并返回会话 ID 和 cookie - 即,使用 Apex 应用程序作为身份验证后端,而用户永远不会看到 Apex页面......这是可能的,但我还没有看到有人这样做。 - 一旦您的 Angular 应用程序具有 Apex session_id 和 cookie,您就可以对 ORDS 使用第一方身份验证 - 只需将 cookie 和
Apex-Session
HTTP 标头连同您对 RESTful API 的调用一起传递(此处的一些文档)。
为模糊的答案道歉,但你的用例有点不寻常,我不确定什么是好的答案。
推荐阅读
- node.js - 连接空闲并断开 Mongodb 与 AWS Lambda 的连接
- postgresql - 如何使用 liquibase 设置 jooq-codegen-maven 插件的 postgres 方言且没有数据库连接属性
- macos - 构建更新和添加窗口的方法
- python - 我想要一个 pandas 脚本根据第一个电子表格中的值将一个 excel 表中的值排列到另一个表中
- apache - Apache 中的 TLS 相互身份验证 - 如何获取经过身份验证的用户的用户名
- angular - Angular - 基于服务更新视图的最佳方式(性能)
- c++ - fanotify:如何检查内核是否启用或禁用了 fanotify API
- python - 在 ACI 上部署机器学习模型时出现 ModelNotFoundError
- arrays - Snowflake - 将 JSON 数组字符串对象值提取为管道分隔值
- python - 是否可以在pycharm的python中包含c代码?