mirror of
https://github.com/wassname/talk.git
synced 2026-08-16 11:29:31 +08:00
Use correct redirect url
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import jwtDecode from 'jwt-decode';
|
import jwtDecode from 'jwt-decode';
|
||||||
import {pym} from 'coral-framework';
|
|
||||||
import bowser from 'bowser';
|
import bowser from 'bowser';
|
||||||
import * as actions from '../constants/auth';
|
import * as actions from '../constants/auth';
|
||||||
import * as Storage from '../helpers/storage';
|
import * as Storage from '../helpers/storage';
|
||||||
@@ -24,7 +23,9 @@ export const showSignInDialog = () => (dispatch, getState) => {
|
|||||||
|
|
||||||
// Fire some actions inside the popups reducer, to initialize required state.
|
// Fire some actions inside the popups reducer, to initialize required state.
|
||||||
const required = getState().asset.toJS().settings.requireEmailConfirmation;
|
const required = getState().asset.toJS().settings.requireEmailConfirmation;
|
||||||
|
const redirectUri = getState().auth.toJS().redirectUri;
|
||||||
signInPopUp.coralStore.dispatch(setRequireEmailVerification(required));
|
signInPopUp.coralStore.dispatch(setRequireEmailVerification(required));
|
||||||
|
signInPopUp.coralStore.dispatch(setRedirectUri(redirectUri));
|
||||||
};
|
};
|
||||||
|
|
||||||
// Use `onunload` instead of `onbeforeunload` which is not supported in IOS Safari.
|
// Use `onunload` instead of `onbeforeunload` which is not supported in IOS Safari.
|
||||||
@@ -100,11 +101,6 @@ export const cleanState = () => ({
|
|||||||
type: actions.CLEAN_STATE
|
type: actions.CLEAN_STATE
|
||||||
});
|
});
|
||||||
|
|
||||||
export const setRequireEmailVerification = (required) => ({
|
|
||||||
type: actions.SET_REQUIRE_EMAIL_VERIFICATION,
|
|
||||||
required,
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sign In Actions
|
// Sign In Actions
|
||||||
|
|
||||||
const signInRequest = () => ({
|
const signInRequest = () => ({
|
||||||
@@ -224,7 +220,8 @@ const signUpRequest = () => ({type: actions.FETCH_SIGNUP_REQUEST});
|
|||||||
const signUpSuccess = (user) => ({type: actions.FETCH_SIGNUP_SUCCESS, user});
|
const signUpSuccess = (user) => ({type: actions.FETCH_SIGNUP_SUCCESS, user});
|
||||||
const signUpFailure = (error) => ({type: actions.FETCH_SIGNUP_FAILURE, error});
|
const signUpFailure = (error) => ({type: actions.FETCH_SIGNUP_FAILURE, error});
|
||||||
|
|
||||||
export const fetchSignUp = (formData, redirectUri) => (dispatch) => {
|
export const fetchSignUp = (formData) => (dispatch, getState) => {
|
||||||
|
const redirectUri = getState().auth.toJS().redirectUri;
|
||||||
dispatch(signUpRequest());
|
dispatch(signUpRequest());
|
||||||
|
|
||||||
coralApi('/users', {
|
coralApi('/users', {
|
||||||
@@ -262,9 +259,9 @@ const forgotPasswordFailure = () => ({
|
|||||||
type: actions.FETCH_FORGOT_PASSWORD_FAILURE
|
type: actions.FETCH_FORGOT_PASSWORD_FAILURE
|
||||||
});
|
});
|
||||||
|
|
||||||
export const fetchForgotPassword = (email) => (dispatch) => {
|
export const fetchForgotPassword = (email) => (dispatch, getState) => {
|
||||||
dispatch(forgotPasswordRequest(email));
|
dispatch(forgotPasswordRequest(email));
|
||||||
const redirectUri = pym.parentUrl || location.href;
|
const redirectUri = getState().auth.toJS().redirectUri;
|
||||||
coralApi('/account/password/reset', {
|
coralApi('/account/password/reset', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: {email, loc: redirectUri}
|
body: {email, loc: redirectUri}
|
||||||
@@ -342,7 +339,8 @@ const verifyEmailFailure = () => ({
|
|||||||
type: actions.VERIFY_EMAIL_FAILURE
|
type: actions.VERIFY_EMAIL_FAILURE
|
||||||
});
|
});
|
||||||
|
|
||||||
export const requestConfirmEmail = (email, redirectUri) => (dispatch) => {
|
export const requestConfirmEmail = (email) => (dispatch, getState) => {
|
||||||
|
const redirectUri = getState().auth.toJS().redirectUri;
|
||||||
dispatch(verifyEmailRequest());
|
dispatch(verifyEmailRequest());
|
||||||
return coralApi('/users/resend-verify', {
|
return coralApi('/users/resend-verify', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@@ -356,5 +354,17 @@ export const requestConfirmEmail = (email, redirectUri) => (dispatch) => {
|
|||||||
|
|
||||||
// email might have already been verifyed
|
// email might have already been verifyed
|
||||||
dispatch(verifyEmailFailure(err));
|
dispatch(verifyEmailFailure(err));
|
||||||
|
throw err;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Login Popup actions.
|
||||||
|
export const setRequireEmailVerification = (required) => ({
|
||||||
|
type: actions.SET_REQUIRE_EMAIL_VERIFICATION,
|
||||||
|
required,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const setRedirectUri = (uri) => ({
|
||||||
|
type: actions.SET_REDIRECT_URI,
|
||||||
|
uri,
|
||||||
|
});
|
||||||
|
|||||||
@@ -47,5 +47,7 @@ export const VERIFY_EMAIL_SUCCESS = 'VERIFY_EMAIL_SUCCESS';
|
|||||||
export const VERIFY_EMAIL_FAILURE = 'VERIFY_EMAIL_FAILURE';
|
export const VERIFY_EMAIL_FAILURE = 'VERIFY_EMAIL_FAILURE';
|
||||||
export const UPDATE_USERNAME = 'UPDATE_USERNAME';
|
export const UPDATE_USERNAME = 'UPDATE_USERNAME';
|
||||||
|
|
||||||
|
// Login Popup actions.
|
||||||
export const SET_REQUIRE_EMAIL_VERIFICATION = 'SET_REQUIRE_EMAIL_VERIFICATION';
|
export const SET_REQUIRE_EMAIL_VERIFICATION = 'SET_REQUIRE_EMAIL_VERIFICATION';
|
||||||
|
export const SET_REDIRECT_URI = 'SET_REDIRECT_URI';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import {Map, fromJS} from 'immutable';
|
import {Map, fromJS} from 'immutable';
|
||||||
import * as actions from '../constants/auth';
|
import * as actions from '../constants/auth';
|
||||||
|
import {pym} from 'coral-framework';
|
||||||
|
|
||||||
const initialState = Map({
|
const initialState = Map({
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
@@ -18,6 +19,7 @@ const initialState = Map({
|
|||||||
successSignUp: false,
|
successSignUp: false,
|
||||||
fromSignUp: false,
|
fromSignUp: false,
|
||||||
requireEmailConfirmation: false,
|
requireEmailConfirmation: false,
|
||||||
|
redirectUri: pym.parentUrl || location.href,
|
||||||
});
|
});
|
||||||
|
|
||||||
const purge = (user) => {
|
const purge = (user) => {
|
||||||
@@ -146,6 +148,9 @@ export default function auth (state = initialState, action) {
|
|||||||
case actions.SET_REQUIRE_EMAIL_VERIFICATION:
|
case actions.SET_REQUIRE_EMAIL_VERIFICATION:
|
||||||
return state
|
return state
|
||||||
.set('requireEmailConfirmation', action.required);
|
.set('requireEmailConfirmation', action.required);
|
||||||
|
case actions.SET_REDIRECT_URI:
|
||||||
|
return state
|
||||||
|
.set('redirectUri', action.uri);
|
||||||
default :
|
default :
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {connect} from 'react-redux';
|
import {connect} from 'react-redux';
|
||||||
import {pym} from 'coral-framework';
|
|
||||||
import SignDialog from './SignDialog';
|
import SignDialog from './SignDialog';
|
||||||
import {bindActionCreators} from 'redux';
|
import {bindActionCreators} from 'redux';
|
||||||
import translations from '../translations';
|
import translations from '../translations';
|
||||||
@@ -99,7 +98,6 @@ class SignInContainer extends React.Component {
|
|||||||
this.props
|
this.props
|
||||||
.requestConfirmEmail(
|
.requestConfirmEmail(
|
||||||
this.state.emailToBeResent,
|
this.state.emailToBeResent,
|
||||||
pym.parentUrl || location.href
|
|
||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -154,7 +152,7 @@ class SignInContainer extends React.Component {
|
|||||||
const {fetchSignUp, validForm, invalidForm} = this.props;
|
const {fetchSignUp, validForm, invalidForm} = this.props;
|
||||||
this.displayErrors();
|
this.displayErrors();
|
||||||
if (this.isCompleted() && !Object.keys(errors).length) {
|
if (this.isCompleted() && !Object.keys(errors).length) {
|
||||||
fetchSignUp(this.state.formData, pym.parentUrl || location.href);
|
fetchSignUp(this.state.formData);
|
||||||
validForm();
|
validForm();
|
||||||
} else {
|
} else {
|
||||||
invalidForm(lang.t('signIn.checkTheForm'));
|
invalidForm(lang.t('signIn.checkTheForm'));
|
||||||
|
|||||||
Reference in New Issue
Block a user