You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android应用中实现AWS Cognito与API Gateway的登录登出功能?

简易Android应用:AWS Cognito认证+受保护API调用实现

最近我搞定了一款简易Android应用的核心功能开发,在这里和大家梳理下实现细节和验证逻辑:

已实现的核心功能

  • 自定义认证UI+Cognito集成:没有用AWS Cognito官方UI库,完全自己搭了登录/登出界面(左侧是未登录时的登录页,右侧是登录后的状态页),实现了:
    • 通过邮箱+密码在AWS Cognito后端完成用户注册与登录
    • 调用Cognito后端接口完成用户登出操作
  • 受保护API调用:对接AWS API Gateway上的受保护Web API,满足预期逻辑:
    • 用户登录状态下,调用API返回200 OK及对应响应体
    • 用户登出后,调用API返回403 Forbidden错误

实现过程中的关键注意事项

  1. Cognito认证流程手动处理

    • 要是开启了Cognito的邮箱验证,得额外处理验证邮件发送和用户验证状态校验,确保只有验证通过的用户才能登录
    • 登录成功后,Cognito返回的Id Token、Access Token和Refresh Token要安全存储,推荐用Android的EncryptedSharedPreferences,别明文存敏感信息
    • 登出时,除了清本地令牌,一定要调用Cognito的登出接口让服务器端失效当前会话,防止令牌被盗用
  2. API Gateway请求的令牌携带

    • 调用受保护API时,必须在请求头加Authorization字段,格式是Bearer {Access Token},这样API Gateway才能验证用户身份
    • 要处理令牌过期的情况:当Access Token过期时,用Refresh Token向Cognito请求新令牌,提升用户体验,避免频繁让用户重新登录
  3. UI状态实时切换

    • 通过监听本地令牌的存在状态或者Cognito的会话有效性,实时切换左右侧UI界面,保证用户看到的界面和当前认证状态一致

内容的提问来源于stack exchange,提问作者Mark Whitaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:58:38