【问题标题】:Does Cognito error message support non-English language?Cognito 错误消息是否支持非英语语言?
【发布时间】:2019-01-27 04:47:31
【问题描述】:

我使用AWS amplify 构建了一个简单的网络应用程序。它的authentication module 效果很好,我可以轻松地使用Amazon Cognito 作为身份验证提供程序。 Cognito 看起来很有前途,我想在我的项目中使用它。

这种方法的一个问题是,任何 Cognito 身份验证错误消息都是英文的,即使大多数用户不会说英语;例如,当 AWS 放大身份验证模块在屏幕上返回 user does not exist.Username/client id combination not found. 时,我的用户会不高兴。

Cognito 错误消息是否支持任何非英语语言?

【问题讨论】:

    标签: amazon-web-services authentication internationalization amazon-cognito


    【解决方案1】:

    简短回答:不,它没有。您应该以您选择的语言提供错误。您还可以使用框架的国际化功能。

    为了架构而提供更长的答案:为什么要将错误消息从 Cognito 传递给用户?有几个独立的关注点:

    1.浏览量: 您的浏览量(页面)应显示登录信息及其收到的错误(如果有)。

    2。控制器:你的控制器是这里的中间人。它获取登录表单并将其传递给模型,并从模型中获取boolean 响应;并决定向用户发送什么。控制器不知道什么是 Cognito 或任何其他服务。它只知道要调用的模型。

    3。模型:您的模型负责了解 Cognito,并与 Cognito 进行通信。您从 Cognito 获得的任何异常都可以在此处存储/记录,然后模型将一般响应发送回控制器。

    总而言之,要遵循 MVC 模型并应用干净的代码原则,您不得在所有组件都知道 Cognito 的情况下从 views <-> controller <-> models 返回和返回。

    对于国际化,您的 Web 框架可以支持它。例如,Playframework supports it

    【讨论】:

    • "为什么要将错误消息从 Cognito 传递给用户?"因为作为开发人员,您不必知道来自 AWS Cognito 登录表单的所有可能错误消息,并且这些错误包含应用程序最终用户的关键信息。外包登录逻辑的重点是不要为它考虑每个案例场景。
    • @Deykun 最终用户与 Cognito 无关。我可能会迁移到谷歌云,最终用户的功能不应该改变。一切都应该本地化,错误应该匹配,然后提供给最终用户。为什么如果我是 Netflix 用户,我会从 AWS 收到错误消息?是的,您应该注意来自您正在使用的服务的所有可能的错误消息。
    • 目前,您无法以正常方式对其进行本地化,因为您没有收到错误代码:太短或太容易(以及以何种方式)。你得到的字符串在任何地方都没有记录,它包含你不能简单地用“有问题”替换的关键信息,我祝你在准备本地化时好运。创建自己的注册比尝试破解它更容易。
    • 如果您使用代理,那么恭喜您在代码中处理了该问题,试图了解您的用户输入数据有什么问题,并用他的母语告诉他。我想指出的是,这个库是在前端应用程序中使用的,例如 React 而不是在后端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 2015-03-27
    相关资源
    最近更新 更多