Ajax 登录并以 json 格式获取数据 (OpenAM)

Posted

技术标签:

【中文标题】Ajax 登录并以 json 格式获取数据 (OpenAM)【英文标题】:Ajax login and get data as json (OpenAM) 【发布时间】:2014-07-25 04:26:15 【问题描述】:

一旦我通过 OpenAM 单击不同的按钮并自发地显示结果,我想以不同的用户身份登录。我尝试了 OpenAM 开发指南,但不知道。

http://openam.forgerock.org/openam-documentation/openam-doc-source/doc/dev-guide/#chap-rest 3.3.1。身份验证和注销 (这是 wt openam 说的)

## 最简单的用户名/密码认证返回一个tokenId 应用程序可以作为 cookie 值呈现给其他操作 需要身份验证的。在这种情况下,使用 HTTP POST 来防止 Web 容器记录凭据。将用户名传递给 X-OpenAM-Username 标头和 X-OpenAM-Password 中的密码 标题。

[-]
$ curl \
 --request POST \
 --header "X-OpenAM-Username: demo" \
 --header "X-OpenAM-Password: changeit" \
 --header "Content-Type: application/json" \
 --data "" \
 https://openam.example.com:8443/openam/json/authenticate
 "tokenId": "AQIC5w...NTcy*", "successUrl": "/openam/console" 

这种“零页面登录”机制仅适用于名称/密码验证。如果您在请求中包含 POST 正文,则它必须 是一个空的 JSON 字符串,如示例中所示。或者,你 可以将 POST 主体留空。否则,OpenAM 会解释正文 作为现有身份验证尝试的延续,使用 受支持的回调机制。

/json/authenticate 的认证服务支持回调 可以执行其他类型的机制 除了简单的用户名/密码登录之外的身份验证。

根据客户端内容未完成的回调 HTTP 请求以 JSON 格式返回,作为对请求的响应。每个 回调有一个适合显示到最后的输出数组 用户和输入,这是客户端必须完成并发回的内容 到 OpenAM。默认还是用户名/密码认证。


我的代码 main.html

$('#try').click(function()
    var uid="user";
    var password="password";

    $.ajax(
        type: "POST",
        url: "https://mytomcatlocalhost/itapp/app3/app3.jsp",
        dataType: "jsonp",
        crossDomain: true,
        headers: "X-OpenAM-Username":uid,"X-OpenAM-Password":password,
        contentType:"application/json",

        success: function(Jdata) 
            alert("h");
        

<button id="try">user 1</button>

但我不确定回调的作用是什么,以及我的方向是否正确。 app3.jsp 是一个只允许用户在他/她成功登录到 openAM 后才能看到的应用程序。但是我被困在如何自动登录上。

【问题讨论】:

【参考方案1】:

我猜是 url 的值

"https://mytomcatlocalhost/itapp/app3/app3.jsp"

是您的应用 URL,而不是 OpenAM REST 身份验证 URL ...您是否在 jsp 中的 bean 中使用 OpenAM REST?

如果不是,您提供的代码实际上没有意义。

【讨论】:

以上是关于Ajax 登录并以 json 格式获取数据 (OpenAM)的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 query() 获取 wordpress 帖子并以 json 格式输出?

调用 wcf 休息服务并以 xml 或 json 格式返回数据

Node.js 解析 HTML 表并以 JSON 格式获取结果

js如何获取ajax返回的json的数据

关于ajax中获取到的数据格式不是标准的json的

ajax请求时如何解析json数据