相关疑难解决方法(0)

AWS Cognito授权代码在不使用托管UI的情况下授予流程

在没有托管UI的情况下使用AWS的Cognito,给定用户名和密码我希望在不使用托管的UI的情况下获得授权代码授权.

这可能吗?我正在编写自己的注册,登录表单,但似乎无法找到有关此主题的文档.

目前我可以使用AWS.CognitoIdentityServiceProvider和initiateAuth函数来交换令牌的用户名密码,但我不想在重定向URL中返回这些令牌,我宁愿返回可以交换令牌的授权代码授权.

那么我如何使用initiateAuth接收授权代码授权而不是令牌.

更新:使用下面的正确答案,这就是我最终在节点中进行的操作.

const base64url = require('base64url');
const crypto = require('crypto');
const request = require('request');
const querystring = require ('querystring');

function generateCodeVerifierHash(code_verifier) {
  return crypto.createHmac('SHA256', code_verifier)
  .digest('base64');
}

function generateCodeVerifier() {
  var text = "";
  var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._`-";

  for (var i = 0; i < 64; i++)
    text += possible.charAt(Math.floor(Math.random() * possible.length));

  return base64url.encode(text);
}

var CLIENT_ID="Your Client Id";
var CLIENT_SECRET="Your Client Secret";
var RESPONSE_TYPE="code";
var REDIRECT_URI= encodeURIComponent("Your Redirect Url");
var SCOPE="openid";
var AUTH_DOMAIN= "Your Cognito Auth …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cognito aws-cognito

6
推荐指数
1
解决办法
2671
查看次数