【问题标题】:Ember Simple Auth & Ember Simple Auth TokenEmber 简单身份验证和 Ember 简单身份验证令牌
【发布时间】:2016-04-14 10:34:58
【问题描述】:

我将 ember simple-auth 与 ember simple-auth-token 一起使用,我想获取用户令牌的值以便在 ajax 调用中使用它。 如何访问令牌值?我尝试了以下语法:

 headers: {"Authorization":"Token" + " auth_token"}

 headers: {"Authorization":"Token" + " session.data"}

但它们都没有奏效。

【问题讨论】:

    标签: authentication ember.js


    【解决方案1】:

    不确定 simple-auth-token,但我正在使用 ember-simple-auth,并且我正在将令牌添加到扩展基本授权方的每个传出请求中,如下所示:

    // app/authorizers/my-own-authorizer.js
    
    import Base from 'ember-simple-auth/authorizers/base';
    
    export default Base.extend({
    
      /**
       * Authorizes all outgoing requests by a session-token that has been received during a login process.
       * If such a session token does not exist, it does not add anything.
       * @override
       * @param {Object} sessionData received from the backend on a successful login
       * @param {Function} addHeaderFunction function that appends a custom header into the next request
         */
      authorize(sessionData, addHeaderFunction){
        const sessionToken = Ember.get(sessionData, "meta.session-token");
        if (Ember.isPresent(sessionToken)) {
          addHeaderFunction('authorization', sessionToken);
        }    
      }
    });
    

    不要忘记调整您的应用程序适配器,以便它使用授权器:

    // app/adapters/application.js
    ...
    import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';
    
    export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
     ....
     authorizer: 'authorizer:my-own-authorizer',
     ...
    }
    

    【讨论】:

    • 非常感谢您的回答,但我正在寻找更简单的东西。终于发现可以通过调用self.get("session.data.authenticated.auth_token")来访问token。
    • 我以前也这样做过,但文档明确谈论扩展授权者和覆盖authorize() 函数。我发现代码现在更具可读性,因为我不必在它们不属于的地方混合关注点。
    • 使用 ember-simple-auth-token 我只需要使用 DataAdapterMixin。其他一切都是自动为我处理的......
    • 你真的应该为此使用authorizer
    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多