Ghost/ghost/admin/app/torii-providers/ghost-oauth2.js
Kevin Ansfield b68fc53efd use current URI instead of configured blog URI for OAuth redirectURI (#518)
refs https://github.com/TryGhost/Ghost/issues/7907
- rather than forwarding the redirect URI as configured in Ghost we should use the URL that the admin client is currently loaded on when setting the Ghost OAuth `redirectUri` attribute
- fixes issue with the admin app loading inside of the OAuth popup window and not logging in when using https with a registered http redirect uri
2017-02-01 16:15:47 +00:00

45 lines
1.1 KiB
JavaScript

import Oauth2 from 'torii/providers/oauth2-code';
import injectService from 'ember-service/inject';
import computed from 'ember-computed';
import ghostPaths from 'ghost-admin/utils/ghost-paths';
let GhostOauth2 = Oauth2.extend({
config: injectService(),
name: 'ghost-oauth2',
baseUrl: computed(function () {
return `${this.get('config.ghostAuthUrl')}/oauth2/authorize/`;
}),
apiKey: computed(function () {
return this.get('config.ghostAuthId');
}),
optionalUrlParams: ['type', 'email'],
responseParams: ['code'],
// we want to redirect to the ghost admin app by default
init() {
this._super(...arguments);
let adminPath = ghostPaths().adminRoot;
let redirectUri = `${window.location.protocol}//${window.location.host}`;
redirectUri += adminPath;
this.set('redirectUri', redirectUri);
},
open(options) {
if (options.type) {
this.set('type', options.type);
}
if (options.email) {
this.set('email', options.email);
}
return this._super(...arguments);
}
});
export default GhostOauth2;