DVG
DVG

Reputation: 17480

EmberAuth actionRedirectable Module prevents use from accessing a resource by URL

I have the following Auth object in my app:

App.Auth = Ember.Auth.create
  signInEndPoint: '/users/sign_in'
  signOutEndPoint: '/users/sign_out'

  tokenKey: 'auth_token'
  tokenIdKey: 'user_id'

  userModel: 'App.User'

  modules: ['emberModel', 'rememberable', 'actionRedirectable']

  actionRedirectable:
    signInRoute: 'home'
    signOutRoute: 'login'

  rememberable:
    tokenKey: 'remember_token'
    period: 7
    autoRecall: true

Everything with authentication is working great. The problem I'm seeing now, though, is that when a user attempts to access, say, 'mydomain.com/#/articles/12' and has a valid remember token, accessing the application is tantamoun to starting a new boot of the application. The user is signed in via remember token, and actionRedirectable takes over and takes the user to HomeRoute instead of going to the requested resource.

I feel like I could get around this by manually transitioning the routes in the relvant login/logout controllers, but I wonder if there's a baked in way of solving this in EmberAuth?

Upvotes: 0

Views: 53

Answers (1)

heartsentwined
heartsentwined

Reputation: 306

ember-auth dev here.

This looks like a known issue. Try the fix in this comment from github issue #69.

In short, module order does matter. actionRedirectable needs to register the route (probably the article route in your case), before rememberable signs in the user and requests a redirect. Otherwise it would have nowhere to redirect to, and falls back to your home route as specified.

There have already been requests of fixing this unexpected behavior, but I haven't been able to find a fix yet - sorry.

Upvotes: 1

Related Questions