Node.js Azure-在每个运行应用程序的请求之前执行一些代码
我已经创建了一个azure函数应用程序,并在其中创建了一些函数。 我想检查用户是否有权访问路由(从我的数据库)。 我需要在执行请求之前检查这个。Node.js Azure-在每个运行应用程序的请求之前执行一些代码,node.js,azure,azure-web-app-service,azure-functions,Node.js,Azure,Azure Web App Service,Azure Functions,我已经创建了一个azure函数应用程序,并在其中创建了一些函数。 我想检查用户是否有权访问路由(从我的数据库)。 我需要在执行请求之前检查这个。 如何在function app中实现这一点?如果您将function v2与c#一起使用,那么您可以编写自己的启动类,并将其注册到您的函数中。启动类始终在函数执行之前执行 还请确保您使用的是最新版本的Microsoft.NET.Sdk.Functionsnuget软件包(截至目前,最新版本为1.0.29) 这是一个示例代码,请根据您的需要随意修改: u
如何在function app中实现这一点?如果您将function v2与c#一起使用,那么您可以编写自己的
启动类
,并将其注册到您的函数中。启动类始终在函数执行之前执行
还请确保您使用的是最新版本的Microsoft.NET.Sdk.Functions
nuget软件包(截至目前,最新版本为1.0.29)
这是一个示例代码,请根据您的需要随意修改:
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Hosting;
using Microsoft.Extensions.Logging;
using System.IO;
[assembly: WebJobsStartup(typeof(FunctionApp16.MyStartup))]
namespace FunctionApp16
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run("your parameters")
{
//your code here
}
}
public class MyStartup : IWebJobsStartup
{
public void Configure(IWebJobsBuilder builder)
{
//write your code here, it will executes prior to the function method.
}
}
}
Azure API管理服务支持对所有传入请求进行JWT验证
validate jwt策略强制执行从指定HTTP头或指定查询参数提取的jwt的存在性和有效性
在强制执行其他安全和授权用例中,这对于检查声明中的权限非常有用。您可以在文档中阅读更多内容。虽然这不会查询数据库中的用户权限,但这是实现目标的一种非常有效的方法
以下是文档中的语法
<required-claims>
<claim name="name of the claim as it appears in the token" match="all|any" separator="separator character in a multi-valued claim">
<value>claim value as it is expected to appear in the token</value>
<!-- if there is more than one allowed values, then add additional value elements -->
</claim>
<!-- if there are multiple possible allowed values, then add additional value elements -->
</required-claims>
预计将出现在令牌中的索赔值
下面是如何实现它的
<required-claims>
<claim name="FirstRoute" match="any">
<value>true</value>
</claim>
<claim name="SecondRoute" match="any">
<value>false</value>
</claim>
</required-claims>
真的
假的
我正在使用NodeJs。@miljojojohn,对于node.js,我刚刚找到了这个,你可以看看它是否有用。@MILJOJOHN,你能根据我在评论中提供的链接解决你的问题吗?