ember-simple-auth:使用自定义身份验证器将会话持久保存在本地存储中

奇拉格·拉文德拉(Chirag Ravindra)

设置:

  • 男子:2.0.2
  • 灰烬数据:2.0.1
  • 的jQuery:1.11.3
  • 灰烬简单身份验证:1.0.0(jjAbrams分支)
  • 灰烬CLI:1.13.8

我正在使用伪装者来模拟服务器。

用例:

使用自定义身份验证器与服务器接口。

有2条路由:登录,受保护(默认情况下为应用程序索引)

当我使用正确的凭据登录时,将调用身份验证器的authenticate方法,并成功记录传递到resolve()的响应对象。

观察结果:

  1. 登录并定向到受保护的页面后,刷新受保护的路由(具有AuthenticatedRouteMixin)将返回登录页面。

  2. 即使成功登录,Localstorage也没有绑定任何值。登录前:ember_simple_auth:session -> {"authenticated":{}}

  3. restore() 身份验证器的方法从未调用过。

  4. 验证后从受保护的路由转到另一条路由,然后再次进入登录页面。

//authenticators/custom.js
import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';


export default Base.extend({
  restore: function (data) {
    return new Ember.RSVP.Promise(function (resolve, reject) {
      console.log("RESOLVE",data);
      if (!Ember.isEmpty(data.token)) {
        //TODO Remove log

        resolve(data);
      } else {
        console.log("REJECTING",data);
        reject();
      }
    });
  },
  authenticate(credentials) {
    
    return new Ember.RSVP.Promise((resolve, reject) =>
      Ember.$.ajax({
        url: '/token',
        type: 'POST',
        data: JSON.stringify({
          email: credentials.identification,
          password: credentials.password
        }),
        contentType: 'application/json;charset=utf-8',
        dataType: 'json'
      }).then(function (response) {
        Ember.run(function () {
          //This logs the expected information
          console.log("Response", response, response.token, response.user);
          resolve(response);
        });
      }, function (xhr, status, error) {
        console.log("error", error, xhr.responseText);
        var response = xhr.responseText;
        Ember.run(function () {
          reject(response);
        });
      }));
  },

  invalidate(token) {
    return API.logout(token);
  }
});

//environment.js
ENV['ember-simple-auth'] = {
  store: 'session-store:local-storage',
  routeAfterAuthentication: '/protected'
};

TLDR;如何使会话持续进行?

奇拉格·拉文德拉(Chirag Ravindra)

我终于一起工作了。Ember 2.0和ESA 1.0

这是我采取的步骤:

  1. 创建一个新的ember cli项目
  2. 将bower.json源中的Ember和ember数据值更新为^ 2.0.0
  3. 将ESA jjAbrams dep添加到package.json
  4. 运行npm install && bower install

陷阱:(这是导致问题中描述的问题的原始问题)

  1. 如果您是从旧版ESA升级,则所有对“ simple-auth / ..”的引用都应更新为引用“ ember-simple-auth / ..”。在config / environment.js文件中存储,混合和Config键。

一旦ESA 1.0和Ember Cli for Ember 2.0出现,所有这些都不应该成为问题:)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Ember Simple Auth使用自定义身份验证器注销用户

来自分类Dev

Ember.js Ember Simple Auth持久身份验证信息在LocalStorage中不起作用

来自分类Dev

在ember simple auth中将数据保存在浏览器的本地存储中

来自分类Dev

如何使用Ember Simple Auth获取自定义会话的属性

来自分类Dev

通过Torii进行身份验证后,Ember Simple Auth立即使会话无效

来自分类Dev

ember-simple-auth多个身份验证器体系结构

来自分类Dev

如何使ember-simple-auth会话过期?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Ember简单身份验证会话在自定义身份验证器中调用解析后未获得身份验证

来自分类Dev

在Ember Simple Auth中处理多个帐户

来自分类Dev

验收测试中的Ember Simple Auth 1.0

来自分类Dev

使用laravel进行Ember-simple-auth

来自分类Dev

用ember-simple-auth进行的Ember CLI错误

来自分类Dev

ember-simple-auth和ember-cli

来自分类Dev

如何保护本地存储并在ember-simple-auth中关闭浏览器清除它?

来自分类Dev

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

来自分类Dev

通过ember-simple-auth登录fb

来自分类Dev

ember-simple-auth和IE

来自分类Dev

ember-simple-auth覆盖sessionAuthenticated

来自分类Dev

Ember-simple-auth即时更改cookie

来自分类Dev

Ember Simple Auth 1.0测试助手

来自分类Dev

会话中的ember-simple-auth更新数据

来自分类Dev

如何访问ember-simple-auth中的会话属性?

来自分类Dev

如何在ember-simple-auth中的后续请求中将身份验证令牌添加为标头?

来自分类Dev

如何在ember-simple-auth中获取有关当前经过身份验证的用户的详细信息?

来自分类Dev

如何在ember cli中使用自定义授权者和自定义身份验证器进行ember简单身份验证

来自分类Dev

Ember简单身份验证自定义身份验证器

Related 相关文章

  1. 1

    使用Ember Simple Auth使用自定义身份验证器注销用户

  2. 2

    Ember.js Ember Simple Auth持久身份验证信息在LocalStorage中不起作用

  3. 3

    在ember simple auth中将数据保存在浏览器的本地存储中

  4. 4

    如何使用Ember Simple Auth获取自定义会话的属性

  5. 5

    通过Torii进行身份验证后,Ember Simple Auth立即使会话无效

  6. 6

    ember-simple-auth多个身份验证器体系结构

  7. 7

    如何使ember-simple-auth会话过期?

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    Ember简单身份验证会话在自定义身份验证器中调用解析后未获得身份验证

  12. 12

    在Ember Simple Auth中处理多个帐户

  13. 13

    验收测试中的Ember Simple Auth 1.0

  14. 14

    使用laravel进行Ember-simple-auth

  15. 15

    用ember-simple-auth进行的Ember CLI错误

  16. 16

    ember-simple-auth和ember-cli

  17. 17

    如何保护本地存储并在ember-simple-auth中关闭浏览器清除它?

  18. 18

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

  19. 19

    通过ember-simple-auth登录fb

  20. 20

    ember-simple-auth和IE

  21. 21

    ember-simple-auth覆盖sessionAuthenticated

  22. 22

    Ember-simple-auth即时更改cookie

  23. 23

    Ember Simple Auth 1.0测试助手

  24. 24

    会话中的ember-simple-auth更新数据

  25. 25

    如何访问ember-simple-auth中的会话属性?

  26. 26

    如何在ember-simple-auth中的后续请求中将身份验证令牌添加为标头?

  27. 27

    如何在ember-simple-auth中获取有关当前经过身份验证的用户的详细信息?

  28. 28

    如何在ember cli中使用自定义授权者和自定义身份验证器进行ember简单身份验证

  29. 29

    Ember简单身份验证自定义身份验证器

热门标签

归档