When using Ember Simple Auth add-on, can I use index
route to override its login
route to be able to redirect to another external login page ?
Meaning that, I defined application.js
routes as follows:
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';
export default Route.extend(ApplicationRouteMixin, {
currentUser: service('current-user'),
authenticationRoute: 'index',
routeAfterAuthentication: 'dashboard',
beforeModel() {
return this._loadCurrentUser();
},
sessionAuthenticated() {
this._super(...arguments);
this._loadCurrentUser();
},
_loadCurrentUser() {
return this.get('currentUser').loadCurrentUser().catch(() => this.get('session').invalidate());
}
});
And the index.js
route like this:
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import config from '../config/environment';
import isFastBoot from 'ember-simple-auth/utils/is-fastboot';
export default Route.extend({
session: service('session'),
_isFastBoot: isFastBoot(),
beforeModel: function() {
if (this.get('session.isAuthenticated')) {
this.transitionTo('dashboard');
} else {
if (!this.get('_isFastBoot')) {
let oauthUrl = config.oauthUrl;
let clientId = config.clientID;
let redirectURI = `${window.location.origin}/callback`;
let responseType = `token`;
let scope = `profile%20openid`;
window.location.replace(oauthUrl
+ `?client_id=${clientId}`
+ `&redirect_uri=${redirectURI}`
+ `&response_type=${responseType}`
+ `&scope=${scope}`
);
}
}
}
});
But it does not work.