小编Vit*_*nov的帖子

为什么在Javascript事件处理函数中使用括号?

Javascript大师,看看这段代码:

<button onclick="handler()">ClickMe</button>
        <script>
            function handler() {
            alert("clicked");
        }
     </script>
Run Code Online (Sandbox Code Playgroud)

为什么onclick事件应该用()onclick ="handler()"分配给handler?在这种情况下,会调用警报.但是根据描述为类似问题的回答的逻辑/sf/answers/227293111/ onclick分配给函数处理程序的结果,而不是自己运行.我相信指定onclick功能它应该是这样的

onclick="handler", 
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,不会调用警报.为什么?

javascript javascript-events

7
推荐指数
4
解决办法
2858
查看次数

.AddOAuth() 与 .AddOpenIdConnect()

人们,

您能否为我澄清这两种方法的区别和目的:

  1. Microsoft.Extensions.DependencyInjection.OAuthExtensions.AddOAuth();
  2. Microsoft.Extensions.DependencyInjection.OpenIdConnectExtensions.AddOpenIdConnect()。

根据名称一个是用来授权的,另一个是用来验证用户的,对吧?因此,如果我的 mvc 应用程序需要知道我需要使用谁来.AddOpenIdConnect()获取用户id_token?如果我需要代表当前用户从 mvc 应用程序调用资源服务,我需要添加.AddOAuth()以获得access_token?

auth0.com 的实验表明,代码 with.AddOAuth()能够获得访问令牌作为 的结果HttpContext.GetTokenAsync("access_token"),但如果HttpContext.GetTokenAsync("id_token").

反之亦然 -.AddOpenIdConnect()可以获得 id_token,但不能获得 access_token。

两者的配置是相等的:

.AddOAuth("oauth", o =>
            {
                o.AuthorizationEndpoint = "https://<Realm>.auth0.com/authorize?audience=resourceAPI-server";
                o.TokenEndpoint = "https://<REALM>.auth0.com/oauth/token";
                o.ClientId = "<clientID>";
                o.ClientSecret = "<secret>";
                o.CallbackPath = "/cb_oauth";
                o.SaveTokens = true;

            })
            .AddOpenIdConnect("openIdConnect", o =>
            {
                o.Authority = "https://<REALM>.auth0.com";
                o.ClientId = "<clientID>";
                o.ClientSecret = "<secret>";
                o.CallbackPath = "/cb_openIdConnect";
                o.SaveTokens = true;
                o.Events =new OpenIdConnectEvents()
                { …
Run Code Online (Sandbox Code Playgroud)

oauth-2.0 openid-connect asp.net-core

2
推荐指数
1
解决办法
1711
查看次数