Node.js 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

我已经创建了一个azure函数应用程序,并在其中创建了一些函数。 我想检查用户是否有权访问路由(从我的数据库)。 我需要在执行请求之前检查这个。
如何在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,你能根据我在评论中提供的链接解决你的问题吗?