云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名交易_摄像头云存储收费吗_新注册优惠

小七 141 0

本博客是一系列教程的一部分,详细解释了SAP云平台后端服务的使用在上一个教程中,我们创建了节点.js应用程序在云中运行,并调用由后端服务托管的OData服务。正如我们所知,后端服务api是用oauth2安全机制保护的。是的,我记得众所周知,大数据培训,后端服务支持2个OAuth流:授权类型"授权码"和"密码凭证"我们的节点.js应用程序正在使用"资源所有者密码凭据"授予类型。这个流的优点是简单一点:第一个请求获取令牌,第二个请求进入API但是,它更简单,因为最终用户密码必须写在代码中。没问题我已经厌倦了检查是否已从已发布的示例代码中删除了密码哦,那意味着pwd123不是你的真实密码?不,我没那么傻哦,我以为…

好吧,在这个博客里,我们写的应用程序使用"授权码"授权类型我在这个博客中解释了OAuth流理论所以在这个博客里我们只需要看看代码

尽管如此,让我们复制并显示这个漂亮的图表。可视化流程有助于理解代码。

注意:实现"授权码"授予类型非常适合我们,因为在我们的应用程序中,我们无论如何都要公开一个端点,以触发API调用

记住:"授权码"授权类型的一个基本要求是支持重定向,因此需要一个端点来接收包含授权码的来电。

我们的应用程序已经有一个端点,我们只需要添加第二个端点

目标

编写一个简单的节点.js像以前一样调用后端服务API的应用程序新增:基于OAuth"授权码",登录界面显示

先决条件

上博同章说明

准备

上博同章说明

XSUAA

上博同章说明

应用

上博同章说明

新增:此代码:

说明:

在我们的应用程序,我们公开了一个端点,作为启动应用程序的主要入口点

它所做的是重定向。去哪个目标?按照OAuth2的规定,应用程序重定向到"授权服务器",以获取"授权码"按照OAuth2的要求,URL看起来是这样的:

好处是我们不需要手动编写它。我们可以使用oauth客户端:

为什么重定向?为什么不直接叫那个网址呢?它必须是一个重定向,因为"请求"没有什么可获取的。我们希望"授权服务器"显示一个登录屏幕好的,用户输入凭据…然后呢?如果凭据正确,那么"授权服务器"将调用我们的应用程序发送的重定向URL。有吗?是的,是由oauth客户机组成的URI。它怎么知道如何作曲?我们已经在构造函数中给出了所有必需的信息:

我们已经指定了重定向URL,以便它与我们的应用程序公开的第二个端点相匹配因此,"授权服务器"调用我们应用程序的重定向端点并发送"授权码"作为URL参数

在接收到来自"授权服务器"的传入请求后,我们的端点实现再次使用oauth客户端库获取访问令牌:

注:在上一篇博客中,语法不同,因为我们使用了"资源所有者密码凭据"授予类型:client.owner.getToken(usr,pwd)

什么是原始URL?要获取带有代码的令牌,输入参数应该是"授权码",但我们传递的是原始要求. originalUrl的值包含所需的参数:例如/回拨?代码=V2X0H17fvN和状态=oauth客户机知道如何提取它

接下来会发生什么?没有什么新的:后端服务API被调用,结果显示在浏览器窗口

部署应用程序

好的,我知道怎么做

运行应用程序

部署后,点击显示在"应用程序路由"部分的URL,如前一篇博客所述但是,这次我们需要添加端点路径:

/mainentry

示例URL:https://yourapp.cfapps.eu10.hana.ondemand.com/mainentry

立即出现登录界面:

URL显示登录界面由XSUAA发送。因此,用户可以安全地输入凭据而无需担心:凭据没有存储在我们的应用程序中,也没有通过网络发送到后端服务

在输入正确的凭据后,XSUAA遵循我们在应用程序编码中指定的重定向,并发送"授权码"(作为URL参数)

注意:顺便说一句,韩国云服务器,您知道重定向URL可以在XSUAA服务实例中配置,因此它不必由应用程序编码指定

一旦调用了我们应用程序的重定向端点,我们的应用程序将使用"授权码"获取访问令牌。然后可以调用后端服务API并在浏览器中显示结果

下面的屏幕截图显示我们的应用程序(/callback)的重定向端点已经到达此外,还有授权码,如xsuaa发送的:

注:示例代码用于学习OAuth流。具有用户界面的真实web应用程序的处理方式会略有不同,如何用大数据,手机网站建站,例如,为了避免在URL中显示"授权码"

故障排除

如果您愉快地部署所有内容并尝试测试并获取…。。被禁止的???有关疑难解答指南,请参阅本博客

摘要