Ember Simple Auth登录错误未显示在页面上

韦兹

我正在关注一个在线视频教程,该教程设置了Ember Simple Auth Login。一切正常,但向模板显示登录错误(即未经授权的401)。我检查了代码中的错别字,但找不到任何错别字。

在控制器登录中,我尝试将登录e.errors到控制台,但是控制台仅显示“未定义”。但是,如果我只是将错误对象发送e到日志,那么我将获得包含错误对象的error.detail内部信息。注意:这error.detail是我要在login-form.hsb上显示的内容。

任何帮助表示赞赏!

  • 男子:3.4.5
  • 灰烬数据:3.4.2
  • 的jQuery:3.3.1
  • 灰烬简单身份验证:1.7.0

控制器/login.js

import { inject as service } from '@ember/service';
import Controller from '@ember/controller';

export default Controller.extend({
    session: service('session'),

    actions: {
        login(attrs) {
            this.get('session').authenticate('authenticator:jwt', {
                email: attrs.email,
                password: attrs.password
            }).then(() => {
                this.transitionToRoute('index');
            }).catch((e) => {
                this.set('errors', e.errors); // nothing is being displayed
                console.log(e.errors); // Says Undefined in the console
                console.log(e); // Display error to console
            });
        }
    }
});

模板/login.hsb

{{login-form user=model errors=errors onsubmit=(action "login")}}

模板/组件/login-form.hbs

<div class="slide-out">
    <div class="slide-out-card">
        <div class="slide-out-heading">
            <div class="title">
                <h3>Login</h3>
            </div>
        </div>

        <div class="slide-out-content">
            <form onsubmit={{action "login"}}>
                <!-- this does not display the error message -->
                {{#each errors as |error|}}
                    {{error.detail}}
                    <div class="error-alert">{{error.detail}}</div>
                {{/each}}
                <div class="field">
                    <label>Email:</label>
                    {{input type="text" placeholder="Email" value=email}}
                </div>

                <div class="field">
                    <label>Password:</label>
                    {{input type="password" placeholder="Password" value=password}}
                </div>

                <div class="form-footer">
                    <button type="submit" class="btn-submit">save</button>
                </div>
            </form>
        </div>
    </div>
</div>
韦兹

答案是从Embercasts收到的。简单身份验证有一个重大变化。现在的代码应该是e.json.errors

export default Controller.extend({
    session: service('session'),

    actions: {
        login(attrs) {
            this.get('session').authenticate('authenticator:jwt', {
                email: attrs.email,
                password: attrs.password
            }).then(() => {
                this.transitionToRoute('index');
            }).catch((e) => {
                this.set('errors', e.json.errors); // Breaking change to Simple Auth - should be e.json.errors, instead of e.errors
            });
        }
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ember-simple-auth和ember-cli

成功注册后登录Ember-Simple-Auth

Ember Simple Auth 1.0测试助手

Ember-simple-auth即时更改cookie

ember-simple-auth覆盖sessionAuthenticated

验收测试中的Ember Simple Auth 1.0

ember-simple-auth和IE

验证后,Ember Simple Auth会进行不同的重定向

ember-simple-auth-oauth2会话数据示例

Ember-simple-auth获取用户对象嵌套的Promise

Ember Simple Auth - 会话恢复时未设置授权方

无法升级到新的ember-simple-auth

在Ember-simple-auth中附加Firebase JWT

使用ember-simple-auth捕获失败的请求

Ember CLI Simple Auth ApplicationRouteMixin不会触发操作

如何使Ember Cli Mirage与Ember Simple auth一起使用

ember-cli和ember-simple-auth设置用于测试

如何在ember-cli中使用ember-simple-auth?

Ember CLI-在路由中注入服务并使用ember-simple-auth获取当前用户

ember.js + ember-simple-auth认证后如何加载应用程序模型?

在登录页面上未显示验证错误

ember cli simple auth设计最新版本0.8.0-beta.1

多个身份验证提供程序同时使用 ember-simple-auth

如何在NodeJS端点中访问Ember-Simple-Auth-Token授权者标头

EmberJS:我什么时候应该使用Torii vs Ember-Simple-Auth?

如何使用ember-simple-auth在会话中存储用户ID?

ember-simple-auth-torii Facebook提供者从不返回开放功能的承诺

是否可以使用Ember Simple Auth对所有路由进行身份验证?

为什么在使用ember-simple-auth时还原未发送事件身份验证成功?