当前位置: 首页 > 知识库问答 >
问题:

使用API进行keydape登录

南宫胡媚
2023-03-14

我有一个带有javascript的html页面,我想在其中自动登录用户。我有以下代码:

var url = "http://localhost:8180/auth/realms/Myrealm/protocol/openid-connect/token";

const response = await fetch(url, {
    mode: 'no-cors',
    method: "POST",
    body: JSON.stringify({
        "client_id":"myclientid",
        "username":"admin",
        "password":"123",
        "grant_type":"password"
    }),
    headers:{
        //"Content-type":"application/x-www-form-urlencoded", 
        "Content-Type": "application/json"
    }
})

在键斗篷服务器上,我添加了网络起源'*'。我得到以下错误:

邮递http://localhost:8180/auth/realms/Myrealm/protocol/openid-连接/令牌400(错误请求)

我不知道为什么它不起作用。当我使用终端时,它工作正常:

curl -i -d "client_id=myclientid" -d "username=admin" -d "password=123" -d "grant_type=password" http://localhost:8180/auth/realms/Myrealm/protocol/openid-connect/token

(钥匙斗篷版本4.8.3)

const response = await fetch(url, {
    method: "POST",
    body: 'client_id=myclientid&password=123&username=admin&grant_type=password',
    headers:{
        "Content-type":"application/x-www-form-urlencoded"
    }
})

我得到以下回应:

共有1个答案

戎桐
2023-03-14

它现在工作。问题是发送JSON而不是Application/x-wow-form-urlencoded,并且还得到一个ReadableStream而不是字符串作为响应。这是我现在的代码:

    const response = await fetch(url, {
        method: "POST",
        body: "client_id=myclientid&password=123&username=admin&grant_type=password",
        headers:{
            "Content-type":"application/x-www-form-urlencoded"
        }
      });
    response.body.getReader().read().then(function (data){
        var string = new TextDecoder("utf-8").decode(data.value);
        console.log(string);
    });
 类似资料:
  • 问题内容: 我即将在我的网站中包含一个登录系统,但是我认为使用ajax发送a并从名为login.php的外部php脚本接收确认并以与退出登录相同的方式对安全性不是一个好主意另一个logout.php任何建议 问题答案: 我想不出使用Ajax处理登录和注销的任何安全隐患。在ajax和服务器端层之间来回发送什么内容(只要不从服务器向客户端发送纯文本密码)都没有关系,因为会话将是保持授权状态的会话。 但

  • 我的一个客户想使用ADFS实现SSO。我正在考虑在Azure中使用ADFS进行同样的POC。但一个要求是只有一些用户具有ADFS登录,其他用户需要使用身份提供者使用自定义身份验证。 是否可以在同一web应用程序中使用自定义和ADFS身份验证?例如,使用SSO登录页面或使用凭据登录页面? 我的客户刚刚共享了federatedmetadata。xml。(创建新项目时,是否需要提供完整的URL DNS名

  • 我是一个新手在jeter工具。我想测试登录到一个asp.net网站。但是我在网上搜索了2天后没有成功。 我在下面列出了我遵循的步骤: > 添加一个。 添加一个。 为EVENTVALIDATION和VIEWSTATE添加两个正则表达式提取器。 添加HTTP URL重写修改器与(检查和)。 有两个页面,一个是,另一个是。在Login Post Page中,我添加了以下参数: 用户名: __EVENTV

  • 我有一个移动应用(本机),它已作为应用程序添加到我的Azure ADB2C租户中。 我有一个web api(app/api),它已作为应用程序添加到我的Azure AD B2C租户中。我将移动应用程序设置为具有访问web api的权限。 我设置了2个用户流(不确定是否必要):1.User_Auth,2.Sign_in 我有一些用户已经使用Azure Graph客户端添加到我的广告B2C租户中。(这

  • 问题内容: 当我编写HQL查询时 一切安好。但是,当我编写标准时 我有一个例外 如果我想使用“标准和顺序”,我应该如何表达我的“顺序”? 问题答案: 您需要为创建别名。你是这样做的。

  • 错误 我正在编译SimpleCompiletest.java并得到这个错误。救命啊!!!