小编Nel*_*ios的帖子

使用 Java 获取 Amazon Cognito 访问令牌

我们一直在编写一些代码来测试我们的端点和身份验证过程。我们使用 Cognito 进行身份验证,我们的端点需要具有隐式授权流程的访问令牌。

阅读 Amazon 的文档后,我们成功地使用以下代码获取了 openid 令牌:

    AmazonCognitoIdentity identityClient = new AmazonCognitoIdentityClient(
            new BasicAWSCredentials("XXXXXXXXXXXXXXXXXXXXX",
                    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
    );
    identityClient.setRegion(Region.getRegion(Regions.EU_WEST_1));
    GetOpenIdTokenForDeveloperIdentityRequest request =
            new GetOpenIdTokenForDeveloperIdentityRequest();
    request.setIdentityPoolId("eu-west-1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    Map<String,String> logins = new HashMap<>();
    logins.put("acceptance-tests", "acceptance-tests");
    request.setLogins(logins);

    GetOpenIdTokenForDeveloperIdentityResult response =
            identityClient.getOpenIdTokenForDeveloperIdentity(request);
    String identityId = response.getIdentityId();

    String token = response.getToken();
Run Code Online (Sandbox Code Playgroud)

我们只是不知道如何将 openid 令牌交换为访问令牌来调用我们的端点。

也就是说,我们甚至不确定是否真的需要先获取 openid 令牌才能获取访问令牌。

在我们尝试使用下面的代码来获取访问令牌之前,但是我们的端点不接受我们获得的令牌。我们获得的令牌与我们通过 cognito UI 登录时获得的令牌不同。

final String clientId = "XXXXXXXXXXXXXXXXXXXXXXXXX";
final String region = "eu-west-1";
final String username = "USERNAME";
final String password = "PASSWORD";
AWSCognitoIdentityProvider cognitoClient = AWSCognitoIdentityProviderClientBuilder.standard()
            .withRegion(region)
            .build(); …
Run Code Online (Sandbox Code Playgroud)

java amazon-cognito aws-sdk

7
推荐指数
1
解决办法
3934
查看次数

Paperjs 0.9.25 - item.setRampPoint不是一个函数

我已经使用paperjs了一年,没有任何问题.在Chrome更新后(Version 55.0.2883.87 m),我在2个月内未触及的一些生产代码开始失败error: item.setRampPoint is not a function:

paper-full.js:13213 Uncaught TypeError: item.setRampPoint is not a function

at offset (paper-full.js:13213)
at Object.<anonymous> (paper-full.js:13263)
at Object.forIn (paper-full.js:46)
at Function.each (paper-full.js:133)
at applyAttributes (paper-full.js:13260)
at importGroup (paper-full.js:12944)
at importSVG (paper-full.js:13324)
at Project.importSVG (paper-full.js:13356)
at drawAddLaneButtons (tlc.js:267)
at Path.window.drawTlcElements (tlc.js:62)
Run Code Online (Sandbox Code Playgroud)

如果我setRamPointpaperjs代码中注释掉它,它会再次开始工作.

当我尝试将SVG加载到页面时会发生这种情况,但是,正如我之前所说,它在很长一段时间内都运行正常.

我使用的是版本0.9.25 paperjs.

有任何想法吗?

javascript java svg paperjs

5
推荐指数
1
解决办法
554
查看次数

ctx.switchToHttp 不是函数

我正在使用 nestjs 并且我试图创建一个自定义装饰器:

import { createParamDecorator, ExecutionContext } from '@nestjs/common';
import { User } from './user.entity';

export const GetUser = createParamDecorator(
  (data, ctx: ExecutionContext): User => {
    const req = ctx.switchToHttp().getRequest();
    return req.user;
  },
);
Run Code Online (Sandbox Code Playgroud)

装饰器在这里使用:

  @Post('/test')
  @UseGuards(AuthGuard())
  test(@GetUser() user: User) {
    console.log(user);
  }
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

[Nest] 15053   - 26/03/2020, 13:28:19   [ExceptionsHandler] ctx.switchToHttp is not a function +61625ms
TypeError: ctx.switchToHttp is not a function
    at /Users/nelson.larios/Documents/nestjs/nestjs-task-management/dist/auth/get-user.decorator.js:5:21
    at /Users/nelson.larios/Documents/nestjs/nestjs-task-management/node_modules/@nestjs/core/router/router-execution-context.js:115:35
    at resolveParamValue (/Users/nelson.larios/Documents/nestjs/nestjs-task-management/node_modules/@nestjs/core/router/router-execution-context.js:143:31)
    at Array.map (<anonymous>)
    at pipesFn (/Users/nelson.larios/Documents/nestjs/nestjs-task-management/node_modules/@nestjs/core/router/router-execution-context.js:148:45)
    at /Users/nelson.larios/Documents/nestjs/nestjs-task-management/node_modules/@nestjs/core/router/router-execution-context.js:36:36
    at InterceptorsConsumer.intercept …
Run Code Online (Sandbox Code Playgroud)

nestjs

4
推荐指数
1
解决办法
1577
查看次数

标签 统计

java ×2

amazon-cognito ×1

aws-sdk ×1

javascript ×1

nestjs ×1

paperjs ×1

svg ×1