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)
但在这种情况下,不会调用警报.为什么?
人们,
您能否为我澄清这两种方法的区别和目的:
根据名称一个是用来授权的,另一个是用来验证用户的,对吧?因此,如果我的 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)