在AWS Cognito身份池中,资源服务器是代表API资源的标识符。对于每个资源服务器,您可以定义作用域,并将其分配给客户端。
使用AWS Cognito身份池时,您需要配置资源服务器和对应的作用域。下面是示例代码:
// 配置 AWS Cognito 身份池
const AWS = require('aws-sdk/global');
const AmazonCognitoIdentity = require('amazon-cognito-identity-js');
global.fetch = require('node-fetch');
const authenticationData = {
Username : 'username',
Password : 'password',
};
const authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
const poolData = {
UserPoolId : 'pool-id',
ClientId : 'client-id',
};
const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
const userData = {
Username : 'username',
Pool : userPool,
};
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log(' access token + ' + result.getAccessToken().getJwtToken());
const accessToken = result.getAccessToken().getJwtToken();
// 定义资源服务器
const resourceServer = {
userPoolId: 'pool-id',
identifier: 'resource-server-identifier',
name: 'resource-server-name',
scopes: [
{
scopeName: 'scope-1',
scopeDescription: 'This is scope 1'
},
{
scopeName: 'scope-2',
scopeDescription: 'This is scope 2'
}
]
};
// 创建 AWS Cognito 资源服务器
const params = {
AccessToken: accessToken,
UserPoolId: resourceServer.userPoolId,
Identifier: resourceServer.identifier,
Name: resourceServer.name,
Scopes: resourceServer.scopes
};
const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
cognitoidentityserviceprovider.createResourceServer(params, function(err, data) {