mirror of
https://github.com/logto-io/logto.git
synced 2025-03-24 22:41:28 -05:00
refactor(core): rename phone signInMethod to sms (#2252)
Co-authored-by: Xiao Yijun <xiaoyijun@silverhand.io>
This commit is contained in:
parent
244cc3ef57
commit
b5512b9213
20 changed files with 58 additions and 58 deletions
|
@ -6,15 +6,15 @@ export const signInIdentifiers = Object.values(SignInIdentifier);
|
|||
|
||||
export const requiredVerifySignUpIdentifiers = [
|
||||
SignUpIdentifier.Email,
|
||||
SignUpIdentifier.Phone,
|
||||
SignUpIdentifier.EmailOrPhone,
|
||||
SignUpIdentifier.Sms,
|
||||
SignUpIdentifier.EmailOrSms,
|
||||
];
|
||||
|
||||
export const signUpToSignInIdentifierMapping: { [key in SignUpIdentifier]: SignInIdentifier[] } = {
|
||||
[SignUpIdentifier.Username]: [SignInIdentifier.Username],
|
||||
[SignUpIdentifier.Email]: [SignInIdentifier.Email],
|
||||
[SignUpIdentifier.Phone]: [SignInIdentifier.Phone],
|
||||
[SignUpIdentifier.EmailOrPhone]: [SignInIdentifier.Email, SignInIdentifier.Phone],
|
||||
[SignUpIdentifier.Sms]: [SignInIdentifier.Sms],
|
||||
[SignUpIdentifier.EmailOrSms]: [SignInIdentifier.Email, SignInIdentifier.Sms],
|
||||
[SignUpIdentifier.None]: [],
|
||||
};
|
||||
|
||||
|
@ -23,8 +23,8 @@ export const signUpIdentifierToRequiredConnectorMapping: {
|
|||
} = {
|
||||
[SignUpIdentifier.Username]: [],
|
||||
[SignUpIdentifier.Email]: [ConnectorType.Email],
|
||||
[SignUpIdentifier.Phone]: [ConnectorType.Sms],
|
||||
[SignUpIdentifier.EmailOrPhone]: [ConnectorType.Email, ConnectorType.Sms],
|
||||
[SignUpIdentifier.Sms]: [ConnectorType.Sms],
|
||||
[SignUpIdentifier.EmailOrSms]: [ConnectorType.Email, ConnectorType.Sms],
|
||||
[SignUpIdentifier.None]: [],
|
||||
};
|
||||
|
||||
|
@ -33,5 +33,5 @@ export const signInIdentifierToRequiredConnectorMapping: {
|
|||
} = {
|
||||
[SignInIdentifier.Username]: [],
|
||||
[SignInIdentifier.Email]: [ConnectorType.Email],
|
||||
[SignInIdentifier.Phone]: [ConnectorType.Sms],
|
||||
[SignInIdentifier.Sms]: [ConnectorType.Sms],
|
||||
};
|
||||
|
|
|
@ -55,7 +55,7 @@ export const mockSignInExperience: SignInExperience = {
|
|||
isPasswordPrimary: true,
|
||||
},
|
||||
{
|
||||
identifier: SignInIdentifier.Phone,
|
||||
identifier: SignInIdentifier.Sms,
|
||||
password: true,
|
||||
verificationCode: true,
|
||||
isPasswordPrimary: true,
|
||||
|
|
|
@ -26,14 +26,14 @@ describe('validate sign-in', () => {
|
|||
},
|
||||
{
|
||||
...mockSignInMethod,
|
||||
identifier: SignInIdentifier.Phone,
|
||||
identifier: SignInIdentifier.Sms,
|
||||
verificationCode: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
...mockSignUp,
|
||||
identifier: SignUpIdentifier.EmailOrPhone,
|
||||
identifier: SignUpIdentifier.EmailOrSms,
|
||||
password: false,
|
||||
verify: true,
|
||||
},
|
||||
|
@ -95,7 +95,7 @@ describe('validate sign-in', () => {
|
|||
methods: [
|
||||
{
|
||||
...mockSignInMethod,
|
||||
identifier: SignInIdentifier.Phone,
|
||||
identifier: SignInIdentifier.Sms,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -119,7 +119,7 @@ describe('validate sign-in', () => {
|
|||
methods: [
|
||||
{
|
||||
...mockSignInMethod,
|
||||
identifier: SignInIdentifier.Phone,
|
||||
identifier: SignInIdentifier.Sms,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -173,7 +173,7 @@ describe('validate sign-in', () => {
|
|||
},
|
||||
{
|
||||
...mockSignUp,
|
||||
identifier: SignUpIdentifier.Phone,
|
||||
identifier: SignUpIdentifier.Sms,
|
||||
},
|
||||
enabledConnectors
|
||||
);
|
||||
|
@ -197,7 +197,7 @@ describe('validate sign-in', () => {
|
|||
},
|
||||
{
|
||||
...mockSignUp,
|
||||
identifier: SignUpIdentifier.EmailOrPhone,
|
||||
identifier: SignUpIdentifier.EmailOrSms,
|
||||
},
|
||||
enabledConnectors
|
||||
);
|
||||
|
|
|
@ -21,7 +21,7 @@ export const validateSignIn = (
|
|||
);
|
||||
}
|
||||
|
||||
if (signIn.methods.some(({ identifier }) => identifier === SignInIdentifier.Phone)) {
|
||||
if (signIn.methods.some(({ identifier }) => identifier === SignInIdentifier.Sms)) {
|
||||
assertThat(
|
||||
enabledConnectors.some((item) => item.type === ConnectorType.Sms),
|
||||
new RequestError({
|
||||
|
@ -54,9 +54,9 @@ export const validateSignIn = (
|
|||
break;
|
||||
}
|
||||
|
||||
case SignUpIdentifier.Phone: {
|
||||
case SignUpIdentifier.Sms: {
|
||||
assertThat(
|
||||
signIn.methods.some(({ identifier }) => identifier === SignInIdentifier.Phone),
|
||||
signIn.methods.some(({ identifier }) => identifier === SignInIdentifier.Sms),
|
||||
new RequestError({
|
||||
code: 'sign_in_experiences.miss_sign_up_identifier_in_sign_in',
|
||||
})
|
||||
|
@ -65,10 +65,10 @@ export const validateSignIn = (
|
|||
break;
|
||||
}
|
||||
|
||||
case SignUpIdentifier.EmailOrPhone: {
|
||||
case SignUpIdentifier.EmailOrSms: {
|
||||
assertThat(
|
||||
signIn.methods.some(({ identifier }) => identifier === SignInIdentifier.Email) &&
|
||||
signIn.methods.some(({ identifier }) => identifier === SignInIdentifier.Phone),
|
||||
signIn.methods.some(({ identifier }) => identifier === SignInIdentifier.Sms),
|
||||
new RequestError({
|
||||
code: 'sign_in_experiences.miss_sign_up_identifier_in_sign_in',
|
||||
})
|
||||
|
|
|
@ -22,7 +22,7 @@ describe('validate sign-up', () => {
|
|||
|
||||
test('should throw when there is no enabled email connector and identifier is email or phone', async () => {
|
||||
expect(() => {
|
||||
validateSignUp({ ...mockSignUp, identifier: SignUpIdentifier.EmailOrPhone }, []);
|
||||
validateSignUp({ ...mockSignUp, identifier: SignUpIdentifier.EmailOrSms }, []);
|
||||
}).toMatchError(
|
||||
new RequestError({
|
||||
code: 'sign_in_experiences.enabled_connector_not_found',
|
||||
|
@ -33,7 +33,7 @@ describe('validate sign-up', () => {
|
|||
|
||||
test('should throw when there is no enabled sms connector and identifier is phone', async () => {
|
||||
expect(() => {
|
||||
validateSignUp({ ...mockSignUp, identifier: SignUpIdentifier.Phone }, []);
|
||||
validateSignUp({ ...mockSignUp, identifier: SignUpIdentifier.Sms }, []);
|
||||
}).toMatchError(
|
||||
new RequestError({
|
||||
code: 'sign_in_experiences.enabled_connector_not_found',
|
||||
|
@ -44,7 +44,7 @@ describe('validate sign-up', () => {
|
|||
|
||||
test('should throw when there is no enabled email connector and identifier is email or phone', async () => {
|
||||
expect(() => {
|
||||
validateSignUp({ ...mockSignUp, identifier: SignUpIdentifier.EmailOrPhone }, [
|
||||
validateSignUp({ ...mockSignUp, identifier: SignUpIdentifier.EmailOrSms }, [
|
||||
mockAliyunDmConnector,
|
||||
]);
|
||||
}).toMatchError(
|
||||
|
@ -99,7 +99,7 @@ describe('validate sign-up', () => {
|
|||
test('should throw when identifier is email or phone', async () => {
|
||||
expect(() => {
|
||||
validateSignUp(
|
||||
{ ...mockSignUp, identifier: SignUpIdentifier.EmailOrPhone, verify: false },
|
||||
{ ...mockSignUp, identifier: SignUpIdentifier.EmailOrSms, verify: false },
|
||||
enabledConnectors
|
||||
);
|
||||
}).toMatchError(
|
||||
|
|
|
@ -8,7 +8,7 @@ import assertThat from '@/utils/assert-that';
|
|||
export const validateSignUp = (signUp: SignUp, enabledConnectors: LogtoConnector[]) => {
|
||||
if (
|
||||
signUp.identifier === SignUpIdentifier.Email ||
|
||||
signUp.identifier === SignUpIdentifier.EmailOrPhone
|
||||
signUp.identifier === SignUpIdentifier.EmailOrSms
|
||||
) {
|
||||
assertThat(
|
||||
enabledConnectors.some((item) => item.type === ConnectorType.Email),
|
||||
|
@ -20,8 +20,8 @@ export const validateSignUp = (signUp: SignUp, enabledConnectors: LogtoConnector
|
|||
}
|
||||
|
||||
if (
|
||||
signUp.identifier === SignUpIdentifier.Phone ||
|
||||
signUp.identifier === SignUpIdentifier.EmailOrPhone
|
||||
signUp.identifier === SignUpIdentifier.Sms ||
|
||||
signUp.identifier === SignUpIdentifier.EmailOrSms
|
||||
) {
|
||||
assertThat(
|
||||
enabledConnectors.some((item) => item.type === ConnectorType.Sms),
|
||||
|
@ -42,7 +42,7 @@ export const validateSignUp = (signUp: SignUp, enabledConnectors: LogtoConnector
|
|||
}
|
||||
|
||||
if (
|
||||
[SignUpIdentifier.Phone, SignUpIdentifier.Email, SignUpIdentifier.EmailOrPhone].includes(
|
||||
[SignUpIdentifier.Sms, SignUpIdentifier.Email, SignUpIdentifier.EmailOrSms].includes(
|
||||
signUp.identifier
|
||||
)
|
||||
) {
|
||||
|
|
|
@ -31,7 +31,7 @@ export const smsSignInAction = <StateT, ContextT extends WithLogContext, Respons
|
|||
assertThat(
|
||||
signInExperience.signIn.methods.some(
|
||||
({ identifier, verificationCode }) =>
|
||||
identifier === SignInIdentifier.Phone && verificationCode
|
||||
identifier === SignInIdentifier.Sms && verificationCode
|
||||
),
|
||||
new RequestError({
|
||||
code: 'user.sign_in_method_not_enabled',
|
||||
|
@ -117,8 +117,8 @@ export const smsRegisterAction = <StateT, ContextT extends WithLogContext, Respo
|
|||
return async (ctx, next) => {
|
||||
const signInExperience = await findDefaultSignInExperience();
|
||||
assertThat(
|
||||
signInExperience.signUp.identifier === SignUpIdentifier.Phone ||
|
||||
signInExperience.signUp.identifier === SignUpIdentifier.EmailOrPhone,
|
||||
signInExperience.signUp.identifier === SignUpIdentifier.Sms ||
|
||||
signInExperience.signUp.identifier === SignUpIdentifier.EmailOrSms,
|
||||
new RequestError({
|
||||
code: 'user.sign_up_method_not_enabled',
|
||||
status: 422,
|
||||
|
@ -159,7 +159,7 @@ export const emailRegisterAction = <StateT, ContextT extends WithLogContext, Res
|
|||
const signInExperience = await findDefaultSignInExperience();
|
||||
assertThat(
|
||||
signInExperience.signUp.identifier === SignUpIdentifier.Email ||
|
||||
signInExperience.signUp.identifier === SignUpIdentifier.EmailOrPhone,
|
||||
signInExperience.signUp.identifier === SignUpIdentifier.EmailOrSms,
|
||||
new RequestError({
|
||||
code: 'user.sign_up_method_not_enabled',
|
||||
status: 422,
|
||||
|
|
|
@ -656,7 +656,7 @@ describe('session -> passwordlessRoutes', () => {
|
|||
...mockSignInExperience,
|
||||
signUp: {
|
||||
...mockSignInExperience.signUp,
|
||||
identifier: SignUpIdentifier.Phone,
|
||||
identifier: SignUpIdentifier.Sms,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
@ -895,7 +895,7 @@ describe('session -> passwordlessRoutes', () => {
|
|||
...mockSignInExperience,
|
||||
signUp: {
|
||||
...mockSignInExperience.signUp,
|
||||
identifier: SignUpIdentifier.Phone,
|
||||
identifier: SignUpIdentifier.Sms,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ describe('sessionRoutes', () => {
|
|||
methods: [
|
||||
{
|
||||
...mockSignInMethod,
|
||||
identifier: SignInIdentifier.Phone,
|
||||
identifier: SignInIdentifier.Sms,
|
||||
password: false,
|
||||
},
|
||||
],
|
||||
|
|
|
@ -121,7 +121,7 @@ describe('email passwordless flow', () => {
|
|||
describe('sms passwordless flow', () => {
|
||||
beforeAll(async () => {
|
||||
await setUpConnector(mockSmsConnectorId, mockSmsConnectorConfig);
|
||||
await setSignUpIdentifier(SignUpIdentifier.Phone);
|
||||
await setSignUpIdentifier(SignUpIdentifier.Sms);
|
||||
});
|
||||
|
||||
// Since we can not create a sms register user throw admin. Have to run the register then sign-in concurrently.
|
||||
|
|
|
@ -41,9 +41,9 @@ const sign_in_exp = {
|
|||
sign_up_and_sign_in: {
|
||||
identifiers: 'Sign up identifiers',
|
||||
identifiers_email: 'Email address',
|
||||
identifiers_phone: 'Phone number',
|
||||
identifiers_sms: 'Phone number',
|
||||
identifiers_username: 'Username',
|
||||
identifiers_email_or_phone: 'Email address or phone number',
|
||||
identifiers_email_or_sms: 'Email address or phone number',
|
||||
identifiers_none: 'None',
|
||||
sign_up: {
|
||||
title: 'SIGN UP',
|
||||
|
|
|
@ -43,9 +43,9 @@ const sign_in_exp = {
|
|||
sign_up_and_sign_in: {
|
||||
identifiers: 'Sign up identifiers', // UNTRANSLATED
|
||||
identifiers_email: 'Email address', // UNTRANSLATED
|
||||
identifiers_phone: 'Phone number', // UNTRANSLATED
|
||||
identifiers_sms: 'Phone number', // UNTRANSLATED
|
||||
identifiers_username: 'Username', // UNTRANSLATED
|
||||
identifiers_email_or_phone: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_email_or_sms: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_none: 'None', // UNTRANSLATED
|
||||
sign_up: {
|
||||
title: 'SIGN UP', // UNTRANSLATED
|
||||
|
|
|
@ -38,9 +38,9 @@ const sign_in_exp = {
|
|||
sign_up_and_sign_in: {
|
||||
identifiers: 'Sign up identifiers', // UNTRANSLATED
|
||||
identifiers_email: 'Email address', // UNTRANSLATED
|
||||
identifiers_phone: 'Phone number', // UNTRANSLATED
|
||||
identifiers_sms: 'Phone number', // UNTRANSLATED
|
||||
identifiers_username: 'Username', // UNTRANSLATED
|
||||
identifiers_email_or_phone: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_email_or_sms: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_none: 'None', // UNTRANSLATED
|
||||
sign_up: {
|
||||
title: 'SIGN UP', // UNTRANSLATED
|
||||
|
|
|
@ -41,9 +41,9 @@ const sign_in_exp = {
|
|||
sign_up_and_sign_in: {
|
||||
identifiers: 'Sign up identifiers', // UNTRANSLATED
|
||||
identifiers_email: 'Email address', // UNTRANSLATED
|
||||
identifiers_phone: 'Phone number', // UNTRANSLATED
|
||||
identifiers_sms: 'Phone number', // UNTRANSLATED
|
||||
identifiers_username: 'Username', // UNTRANSLATED
|
||||
identifiers_email_or_phone: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_email_or_sms: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_none: 'None', // UNTRANSLATED
|
||||
sign_up: {
|
||||
title: 'SIGN UP', // UNTRANSLATED
|
||||
|
|
|
@ -42,9 +42,9 @@ const sign_in_exp = {
|
|||
sign_up_and_sign_in: {
|
||||
identifiers: 'Sign up identifiers', // UNTRANSLATED
|
||||
identifiers_email: 'Email address', // UNTRANSLATED
|
||||
identifiers_phone: 'Phone number', // UNTRANSLATED
|
||||
identifiers_sms: 'Phone number', // UNTRANSLATED
|
||||
identifiers_username: 'Username', // UNTRANSLATED
|
||||
identifiers_email_or_phone: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_email_or_sms: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_none: 'None', // UNTRANSLATED
|
||||
sign_up: {
|
||||
title: 'SIGN UP', // UNTRANSLATED
|
||||
|
|
|
@ -39,9 +39,9 @@ const sign_in_exp = {
|
|||
sign_up_and_sign_in: {
|
||||
identifiers: 'Sign up identifiers', // UNTRANSLATED
|
||||
identifiers_email: 'Email address', // UNTRANSLATED
|
||||
identifiers_phone: 'Phone number', // UNTRANSLATED
|
||||
identifiers_sms: 'Phone number', // UNTRANSLATED
|
||||
identifiers_username: 'Username', // UNTRANSLATED
|
||||
identifiers_email_or_phone: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_email_or_sms: 'Email address or phone number', // UNTRANSLATED
|
||||
identifiers_none: 'None', // UNTRANSLATED
|
||||
sign_up: {
|
||||
title: 'SIGN UP', // UNTRANSLATED
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { sql } from 'slonik';
|
||||
|
||||
import { AlterationScript } from '../lib/types/alteration';
|
||||
import type { AlterationScript } from '../lib/types/alteration';
|
||||
|
||||
enum SignInMethodState {
|
||||
Primary = 'primary',
|
||||
|
@ -26,15 +26,15 @@ type SignInExperience = {
|
|||
|
||||
enum SignUpIdentifier {
|
||||
Email = 'email',
|
||||
Phone = 'phone',
|
||||
Sms = 'sms',
|
||||
Username = 'username',
|
||||
EmailOrPhone = 'emailOrPhone',
|
||||
EmailOrSms = 'emailOrSms',
|
||||
None = 'none',
|
||||
}
|
||||
|
||||
enum SignInIdentifier {
|
||||
Email = 'email',
|
||||
Phone = 'phone',
|
||||
Sms = 'Sms',
|
||||
Username = 'username',
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ const parseSignInMethodToSignInIdentifier = (
|
|||
}
|
||||
|
||||
if (method === SignInMethodKey.Sms) {
|
||||
return SignInIdentifier.Phone;
|
||||
return SignInIdentifier.Sms;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -79,7 +79,7 @@ const parseSignInMethodToSignUpIdentifier = (method?: SignInMethodKey): SignUpId
|
|||
}
|
||||
|
||||
if (method === SignInMethodKey.Sms) {
|
||||
return SignUpIdentifier.Phone;
|
||||
return SignUpIdentifier.Sms;
|
||||
}
|
||||
|
||||
return SignUpIdentifier.None;
|
||||
|
|
|
@ -152,9 +152,9 @@ export type SignInMethods = z.infer<typeof signInMethodsGuard>;
|
|||
|
||||
export enum SignUpIdentifier {
|
||||
Email = 'email',
|
||||
Phone = 'phone',
|
||||
Sms = 'sms',
|
||||
Username = 'username',
|
||||
EmailOrPhone = 'emailOrPhone',
|
||||
EmailOrSms = 'emailOrSms',
|
||||
None = 'none',
|
||||
}
|
||||
|
||||
|
@ -168,7 +168,7 @@ export type SignUp = z.infer<typeof signUpGuard>;
|
|||
|
||||
export enum SignInIdentifier {
|
||||
Email = 'email',
|
||||
Phone = 'phone',
|
||||
Sms = 'sms',
|
||||
Username = 'username',
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ export const defaultSignInExperience: Readonly<CreateSignInExperience> = {
|
|||
isPasswordPrimary: false,
|
||||
},
|
||||
{
|
||||
identifier: SignInIdentifier.Phone,
|
||||
identifier: SignInIdentifier.Sms,
|
||||
password: true,
|
||||
verificationCode: true,
|
||||
isPasswordPrimary: false,
|
||||
|
|
|
@ -201,7 +201,7 @@ export const mockSignInExperience: SignInExperience = {
|
|||
isPasswordPrimary: true,
|
||||
},
|
||||
{
|
||||
identifier: SignInIdentifier.Phone,
|
||||
identifier: SignInIdentifier.Sms,
|
||||
password: true,
|
||||
verificationCode: false,
|
||||
isPasswordPrimary: true,
|
||||
|
|
Loading…
Add table
Reference in a new issue