AWS Cognito鉴权模块配置及Postman测试
用户池创建及API加密
-
创建新的用户池(Create user pool)
-
建立一个新的user
-
在Api Gateway中的api,若没有配置身份验证,可以直接用postman请求
-
选择对应的API
1)在面板中选择Authorizers。Create New Authorizer,其中Name设为用户池对应名称cognito-test-xxx,Type选cognito,Cognito user pool选择cognito-test,Token source输入Authorization。
2)回到resource侧,选中post,在Method Request中将Authrization改成刚才设置的,保存。(如果没看到自己的用户,刷新界面重试下)
3)注意,此时需要再次deploy API才能生效,生效后直接访问已经是unauthrized状态了。
4)综上,api接口的加密已设置完成。后面需要访问API,必须通过在cognito login后拿到对于的token才能正常访问。
鉴权模块配置
-
选择user pools菜单栏的App clients,点击Add an app client。
-
将App client name设置为之前接口的名称。注意要选择Generate client secret(否则生成的鉴权模块client没有**),其余选项依项目需求配置。
-
配置鉴权网址。选择菜单栏Domain name,查询可用后save changes。
注:domain name一经配置则不可修改。 -
配置服务范围。选择菜单栏Resource servers,Add a resource server。其中Name为服务名称。Identifier为服务说明。Scopes Name为接口名。依据项目情况填写即可。
-
鉴权设置。选择菜单栏App client settings,配置鉴权相关设置,示例如下图。
-
选取上图中的服务范围,在api界面对接口进行配置。重新部署api。
-
综上,鉴权模块已配置完成。目前的配置为最基础的配置,若想全面学习cognito的功能,可参考aws官方文档。
链接:https://medium.com/free-code-camp/the-complete-aws-web-boilerplate-d0ca89d1691f#.uw0npcszi
Postman鉴权配置
-
在userpools页面下,点击左侧菜单栏App clients,可以看到你的App client id 及App client secret。
-
Postman配置如下图,需注意以下几个方面:
1) 认证方式选择OAuth2.0
2) Auth URL为你设置的domain url + /oauth2/authorize
3) Access Token URL为domain url + /oauth2/token -
点击Get New Access Token,会跳出用户认证界面,认证完成后获得token。Use Token之后再访问api即可成功访问。