mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-23 10:53:34 +03:00
b68fc53efd
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
45 lines
1.1 KiB
JavaScript
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;
|