AWS Cognito鉴权模块配置及Postman测试

用户池创建及API加密

  1. 创建新的用户池(Create user pool)

  2. 建立一个新的user
    AWS Cognito鉴权模块配置及Postman测试

  3. 在Api Gateway中的api,若没有配置身份验证,可以直接用postman请求
    AWS Cognito鉴权模块配置及Postman测试



    AWS Cognito鉴权模块配置及Postman测试

  4. 选择对应的API
    1)在面板中选择Authorizers。Create New Authorizer,其中Name设为用户池对应名称cognito-test-xxx,Type选cognito,Cognito user pool选择cognito-test,Token source输入Authorization。
    AWS Cognito鉴权模块配置及Postman测试
    2)回到resource侧,选中post,在Method Request中将Authrization改成刚才设置的,保存。(如果没看到自己的用户,刷新界面重试下)
    AWS Cognito鉴权模块配置及Postman测试
    AWS Cognito鉴权模块配置及Postman测试
    3)注意,此时需要再次deploy API才能生效,生效后直接访问已经是unauthrized状态了。
    AWS Cognito鉴权模块配置及Postman测试


AWS Cognito鉴权模块配置及Postman测试
4)综上,api接口的加密已设置完成。后面需要访问API,必须通过在cognito login后拿到对于的token才能正常访问。

鉴权模块配置

  1. 选择user pools菜单栏的App clients,点击Add an app client。
    AWS Cognito鉴权模块配置及Postman测试

  2. 将App client name设置为之前接口的名称。注意要选择Generate client secret(否则生成的鉴权模块client没有**),其余选项依项目需求配置。
    AWS Cognito鉴权模块配置及Postman测试

  3. 配置鉴权网址。选择菜单栏Domain name,查询可用后save changes。
    注:domain name一经配置则不可修改。
    AWS Cognito鉴权模块配置及Postman测试

  4. 配置服务范围。选择菜单栏Resource servers,Add a resource server。其中Name为服务名称。Identifier为服务说明。Scopes Name为接口名。依据项目情况填写即可。
    AWS Cognito鉴权模块配置及Postman测试

  5. 鉴权设置。选择菜单栏App client settings,配置鉴权相关设置,示例如下图。
    AWS Cognito鉴权模块配置及Postman测试

  6. 选取上图中的服务范围,在api界面对接口进行配置。重新部署api。
    AWS Cognito鉴权模块配置及Postman测试

  7. 综上,鉴权模块已配置完成。目前的配置为最基础的配置,若想全面学习cognito的功能,可参考aws官方文档。
    链接:https://medium.com/free-code-camp/the-complete-aws-web-boilerplate-d0ca89d1691f#.uw0npcszi

Postman鉴权配置

  1. 在userpools页面下,点击左侧菜单栏App clients,可以看到你的App client id 及App client secret。
    AWS Cognito鉴权模块配置及Postman测试

  2. Postman配置如下图,需注意以下几个方面:
    1) 认证方式选择OAuth2.0
    2) Auth URL为你设置的domain url + /oauth2/authorize
    3) Access Token URL为domain url + /oauth2/token
    AWS Cognito鉴权模块配置及Postman测试

  3. 点击Get New Access Token,会跳出用户认证界面,认证完成后获得token。Use Token之后再访问api即可成功访问。
    AWS Cognito鉴权模块配置及Postman测试
    AWS Cognito鉴权模块配置及Postman测试