c# - 我的oauth2回调页面可以是同一个html页面吗?我如何获得 token ?

标签 c# javascript jquery html oauth-2.0

首先,我使用静态 html 和 javascript 以及 C# Web API。 所以我有一个调用 oauth2 服务器的链接,在我的 html 文件上,比如index.html 现在把回调页面设置为index.html就可以了

它似乎有效,并且它被发送到index.html?code=125f0...

这样做可以吗?或者我需要一个单独的回调页面吗?代码就是 token 吗?

现在我应该如何使用它?javascript 似乎没有在回调中受到影响。 编辑,实际上,javascript 似乎在调用中受到了影响,但我没有得到任何未定义的信息:

    $(function () {
        var params = {},
            queryString = location.hash.substring(1),
            regex = /(^&=]+)=([^&*])/g,
            m;
        while (m = regex.exec(queryString)) {
            params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
        }
        if (params.error) {
            if (params.error == "access_denied") {
                sAccessToken = "access_denied";
                //alert(sAccessToken);
            }
        } else {
            sAccessToken = params.code;
            alert(sAccessToken);
        }
    });

另外,我的回调页面可以是 C# Web api 调用吗?并以这种方式发送 token 。我猜不会,因为那么你永远不会知道哪个用户代理正在发送它,并且除非你以某种方式传递了 id 并使用了 signalR,否则无法进行通信?似乎更好的是在 javascript 中获取它并将 token 发送到 Web api。但是,如果 Web api 具有 token ,那么它可以调用该资源吗?

抱歉,我还在学习

最佳答案

OAuth2 有各种“配置文件”。 “授权代码授予”流程(您正在使用的流程)需要一个服务器端组件来交换 token 的代码。

单页应用程序通常使用隐式流程。请参阅此处的快速描述:https://docs.auth0.com/protocols#5 (忽略对“Auth0”的引用,无论实现如何,底层协议(protocol)都是相同的)。

有关这两个流程的更详细说明,请参阅此处:What is the difference between the 2 workflows? When to use Authorization Code flow?

关于c# - 我的oauth2回调页面可以是同一个html页面吗?我如何获得 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23838380/

相关文章:

c# - 使用 C# 将图像上传到 Web API

c# - 按日期排列的最新论坛帖子

javascript - Ui-router加载状态,那我怎么运行一个函数呢?

Javascript获取没有查询字符串的url

c# - 如何将多个对象传递到 IEnumerable 列表中?

c# - 如何合并两个 IQueryable 列表

javascript - react 函数之间的区别

javascript - ASP.NET:如何仅在客户端 ajax 完成后才提交回发

javascript - 导航到 jQuery Mobile 对话框不起作用

javascript - 如何根据窗口大小动态调整图像大小?