Skip to content

Commit

Permalink
Merge pull request #377 from refly-ai/fix/email-login
Browse files Browse the repository at this point in the history
Fix/email login
  • Loading branch information
mrcfps authored Jan 16, 2025
2 parents d46e5bd + 4c9a46f commit b6593d7
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 107 deletions.
9 changes: 3 additions & 6 deletions apps/api/src/auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import {
EmailLoginRequest,
CreateVerificationRequest,
CheckVerificationRequest,
CheckVerificationResponse,
EmailSignupResponse,
ResendVerificationRequest,
AuthConfigResponse,
Expand Down Expand Up @@ -80,11 +79,9 @@ export class AuthController {

@Throttle({ default: { limit: 5, ttl: minutes(10) } })
@Post('verification/check')
async checkVerification(
@Body() params: CheckVerificationRequest,
): Promise<CheckVerificationResponse> {
const { verification, accessToken } = await this.authService.checkVerification(params);
return buildSuccessResponse({ accessToken, purpose: verification.purpose });
async checkVerification(@Body() params: CheckVerificationRequest, @Res() res: Response) {
const tokens = await this.authService.checkVerification(params);
return this.authService.setAuthCookie(res, tokens).json(buildSuccessResponse());
}

@UseGuards(GithubOauthGuard)
Expand Down
4 changes: 1 addition & 3 deletions apps/api/src/auth/auth.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -457,8 +457,6 @@ export class AuthService {
throw new ParamsError(`Invalid verification purpose: ${purpose}`);
}

const { accessToken } = await this.login(user);

return { user, verification, accessToken };
return this.login(user);
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import React, { ReactNode } from "react"
import { ReactNode } from "react"
import { useTranslation } from "react-i18next"
import { AiOutlineAppstore, AiOutlineExperiment } from "react-icons/ai"
import { FaRegPaperPlane } from "react-icons/fa"
import { LuSearch } from "react-icons/lu"
import { MdOutlineNoteAlt } from "react-icons/md"
import BlurImage from "@/components/common/BlurImage"

// Feature type definition for better type safety
interface Feature {
tag: string
tagIcon?: string | ReactNode
title: string
description: string
bulletPoints: string[]
imageSrc: string
isReversed?: boolean
Expand Down Expand Up @@ -120,7 +118,6 @@ function FeaturesBlocks() {
tag: t("landingPage.features.featureOne.tag"),
tagIcon: <FaRegPaperPlane className="inline-block" />,
title: t("landingPage.features.featureOne.title"),
description: t("landingPage.features.featureOne.description"),
bulletPoints: t("landingPage.features.featureOne.bulletPoints", {
returnObjects: true,
}) as string[],
Expand All @@ -135,7 +132,6 @@ function FeaturesBlocks() {
tag: t("landingPage.features.featureTwo.tag"),
tagIcon: <LuSearch className="inline-block" />,
title: t("landingPage.features.featureTwo.title"),
description: t("landingPage.features.featureTwo.description"),
bulletPoints: t("landingPage.features.featureTwo.bulletPoints", {
returnObjects: true,
}) as string[],
Expand All @@ -150,7 +146,6 @@ function FeaturesBlocks() {
tag: t("landingPage.features.featureThree.tag"),
tagIcon: <AiOutlineExperiment className="inline-block" />,
title: t("landingPage.features.featureThree.title"),
description: t("landingPage.features.featureThree.description"),
bulletPoints: t("landingPage.features.featureThree.bulletPoints", {
returnObjects: true,
}) as string[],
Expand All @@ -165,7 +160,6 @@ function FeaturesBlocks() {
tag: t("landingPage.features.featureFour.tag"),
tagIcon: <MdOutlineNoteAlt className="inline-block" />,
title: t("landingPage.features.featureFour.title"),
description: t("landingPage.features.featureFour.description"),
bulletPoints: t("landingPage.features.featureFour.bulletPoints", {
returnObjects: true,
}) as string[],
Expand Down
8 changes: 4 additions & 4 deletions apps/web/src/components/landing-page-partials/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -218,15 +218,15 @@ function Footer() {
{t("landingPage.footer.about.title")}
</h6>
<ul className="list-none text-sm">
<li key={0} className="mb-1">
<li key="privacy" className="mb-1">
<Link
to="https://docs.refly.ai/about/privacy-policy"
target="_blank"
className="text-gray-500 no-underline transition duration-150 ease-in-out hover:text-gray-700">
{t("landingPage.footer.about.privacy")}
</Link>
</li>
<li key={0} className="mb-1">
<li key="terms" className="mb-1">
<Link
to="https://docs.refly.ai/about/terms-of-service"
target="_blank"
Expand All @@ -243,15 +243,15 @@ function Footer() {
{t("landingPage.footer.contactUs.title")}
</h6>
<ul className="list-none text-sm">
<li key={0} className="mb-1">
<li key="community" className="mb-1">
<Link
to="https://docs.refly.ai/community/contact-us"
target="_blank"
className="text-gray-500 no-underline transition duration-150 ease-in-out hover:text-gray-700">
{t("landingPage.footer.contactUs.community")}
</Link>
</li>
<li key={1} className="mb-1">
<li key="mail" className="mb-1">
<Link
to={`mailto:[email protected]`}
className="text-gray-500 no-underline transition duration-150 ease-in-out hover:text-gray-700">
Expand Down
4 changes: 2 additions & 2 deletions packages/ai-workspace-common/src/requests/services.gen.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// This file is auto-generated by @hey-api/openapi-ts

import { createClient, createConfig, type Options, formDataBodySerializer } from '@hey-api/client-fetch';
import type { GetAuthConfigError, GetAuthConfigResponse, RefreshTokenError, RefreshTokenResponse, EmailSignupData2, EmailSignupError, EmailSignupResponse2, EmailLoginData2, EmailLoginError, EmailLoginResponse2, CreateVerificationData2, CreateVerificationError, CreateVerificationResponse2, ResendVerificationData, ResendVerificationError, ResendVerificationResponse, CheckVerificationData2, CheckVerificationError, CheckVerificationResponse2, LogoutError, LogoutResponse, GetCollabTokenError, GetCollabTokenResponse2, ListCanvasesData, ListCanvasesError, ListCanvasesResponse, CreateCanvasData, CreateCanvasError, CreateCanvasResponse, UpdateCanvasData, UpdateCanvasError, UpdateCanvasResponse, DeleteCanvasData, DeleteCanvasError, DeleteCanvasResponse, ListResourcesData, ListResourcesError, ListResourcesResponse, GetResourceDetailData, GetResourceDetailError, GetResourceDetailResponse2, UpdateResourceData, UpdateResourceError, UpdateResourceResponse, CreateResourceData, CreateResourceError, CreateResourceResponse, BatchCreateResourceData, BatchCreateResourceError, BatchCreateResourceResponse2, ReindexResourceData, ReindexResourceError, ReindexResourceResponse2, DeleteResourceData, DeleteResourceError, DeleteResourceResponse, ListDocumentsData, ListDocumentsError, ListDocumentsResponse, GetDocumentDetailData, GetDocumentDetailError, GetDocumentDetailResponse2, UpdateDocumentData, UpdateDocumentError, UpdateDocumentResponse, CreateDocumentData, CreateDocumentError, CreateDocumentResponse, DeleteDocumentData, DeleteDocumentError, DeleteDocumentResponse, BatchUpdateDocumentData, BatchUpdateDocumentError, BatchUpdateDocumentResponse, QueryReferencesData, QueryReferencesError, QueryReferencesResponse2, AddReferencesData, AddReferencesError, AddReferencesResponse2, DeleteReferencesData, DeleteReferencesError, DeleteReferencesResponse, CreateShareData, CreateShareError, CreateShareResponse2, DeleteShareData, DeleteShareError, DeleteShareResponse, GetShareContentData, GetShareContentError, GetShareContentResponse2, ListLabelClassesData, ListLabelClassesError, ListLabelClassesResponse2, CreateLabelClassData, CreateLabelClassError, CreateLabelClassResponse, UpdateLabelClassData, UpdateLabelClassError, UpdateLabelClassResponse, DeleteLabelClassData, DeleteLabelClassError, DeleteLabelClassResponse, ListLabelInstancesData, ListLabelInstancesError, ListLabelInstancesResponse2, CreateLabelInstanceData, CreateLabelInstanceError, CreateLabelInstanceResponse, UpdateLabelInstanceData, UpdateLabelInstanceError, UpdateLabelInstanceResponse, DeleteLabelInstanceData, DeleteLabelInstanceError, DeleteLabelInstanceResponse, ListActionsError, ListActionsResponse, InvokeActionData, InvokeActionError, InvokeActionResponse2, StreamInvokeActionData, StreamInvokeActionError, StreamInvokeActionResponse, GetActionResultData, GetActionResultError, GetActionResultResponse2, ListSkillsError, ListSkillsResponse, InvokeSkillData, InvokeSkillError, InvokeSkillResponse2, StreamInvokeSkillData, StreamInvokeSkillError, StreamInvokeSkillResponse, ListSkillInstancesData, ListSkillInstancesError, ListSkillInstancesResponse, CreateSkillInstanceData, CreateSkillInstanceError, CreateSkillInstanceResponse2, UpdateSkillInstanceData, UpdateSkillInstanceError, UpdateSkillInstanceResponse2, PinSkillInstanceData, PinSkillInstanceError, PinSkillInstanceResponse, UnpinSkillInstanceData, UnpinSkillInstanceError, UnpinSkillInstanceResponse, DeleteSkillInstanceData, DeleteSkillInstanceError, DeleteSkillInstanceResponse, ListSkillTriggersData, ListSkillTriggersError, ListSkillTriggersResponse, CreateSkillTriggerData, CreateSkillTriggerError, CreateSkillTriggerResponse2, UpdateSkillTriggerData, UpdateSkillTriggerError, UpdateSkillTriggerResponse2, DeleteSkillTriggerData, DeleteSkillTriggerError, DeleteSkillTriggerResponse, GetSettingsError, GetSettingsResponse, UpdateSettingsData, UpdateSettingsError, UpdateSettingsResponse, CheckSettingsFieldData, CheckSettingsFieldError, CheckSettingsFieldResponse2, GetSubscriptionPlansError, GetSubscriptionPlansResponse2, GetSubscriptionUsageError, GetSubscriptionUsageResponse2, ListModelsError, ListModelsResponse2, CreateCheckoutSessionData, CreateCheckoutSessionError, CreateCheckoutSessionResponse2, CreatePortalSessionError, CreatePortalSessionResponse2, SearchData, SearchError, SearchResponse2, MultiLingualWebSearchData, MultiLingualWebSearchError, MultiLingualWebSearchResponse2, ScrapeData, ScrapeError, ScrapeResponse, UploadData, UploadError, UploadResponse2, ServeStaticError, ServeStaticResponse } from './types.gen';
import type { GetAuthConfigError, GetAuthConfigResponse, RefreshTokenError, RefreshTokenResponse, EmailSignupData2, EmailSignupError, EmailSignupResponse2, EmailLoginData2, EmailLoginError, EmailLoginResponse2, CreateVerificationData2, CreateVerificationError, CreateVerificationResponse2, ResendVerificationData, ResendVerificationError, ResendVerificationResponse, CheckVerificationData, CheckVerificationError, CheckVerificationResponse, LogoutError, LogoutResponse, GetCollabTokenError, GetCollabTokenResponse2, ListCanvasesData, ListCanvasesError, ListCanvasesResponse, CreateCanvasData, CreateCanvasError, CreateCanvasResponse, UpdateCanvasData, UpdateCanvasError, UpdateCanvasResponse, DeleteCanvasData, DeleteCanvasError, DeleteCanvasResponse, ListResourcesData, ListResourcesError, ListResourcesResponse, GetResourceDetailData, GetResourceDetailError, GetResourceDetailResponse2, UpdateResourceData, UpdateResourceError, UpdateResourceResponse, CreateResourceData, CreateResourceError, CreateResourceResponse, BatchCreateResourceData, BatchCreateResourceError, BatchCreateResourceResponse2, ReindexResourceData, ReindexResourceError, ReindexResourceResponse2, DeleteResourceData, DeleteResourceError, DeleteResourceResponse, ListDocumentsData, ListDocumentsError, ListDocumentsResponse, GetDocumentDetailData, GetDocumentDetailError, GetDocumentDetailResponse2, UpdateDocumentData, UpdateDocumentError, UpdateDocumentResponse, CreateDocumentData, CreateDocumentError, CreateDocumentResponse, DeleteDocumentData, DeleteDocumentError, DeleteDocumentResponse, BatchUpdateDocumentData, BatchUpdateDocumentError, BatchUpdateDocumentResponse, QueryReferencesData, QueryReferencesError, QueryReferencesResponse2, AddReferencesData, AddReferencesError, AddReferencesResponse2, DeleteReferencesData, DeleteReferencesError, DeleteReferencesResponse, CreateShareData, CreateShareError, CreateShareResponse2, DeleteShareData, DeleteShareError, DeleteShareResponse, GetShareContentData, GetShareContentError, GetShareContentResponse2, ListLabelClassesData, ListLabelClassesError, ListLabelClassesResponse2, CreateLabelClassData, CreateLabelClassError, CreateLabelClassResponse, UpdateLabelClassData, UpdateLabelClassError, UpdateLabelClassResponse, DeleteLabelClassData, DeleteLabelClassError, DeleteLabelClassResponse, ListLabelInstancesData, ListLabelInstancesError, ListLabelInstancesResponse2, CreateLabelInstanceData, CreateLabelInstanceError, CreateLabelInstanceResponse, UpdateLabelInstanceData, UpdateLabelInstanceError, UpdateLabelInstanceResponse, DeleteLabelInstanceData, DeleteLabelInstanceError, DeleteLabelInstanceResponse, ListActionsError, ListActionsResponse, InvokeActionData, InvokeActionError, InvokeActionResponse2, StreamInvokeActionData, StreamInvokeActionError, StreamInvokeActionResponse, GetActionResultData, GetActionResultError, GetActionResultResponse2, ListSkillsError, ListSkillsResponse, InvokeSkillData, InvokeSkillError, InvokeSkillResponse2, StreamInvokeSkillData, StreamInvokeSkillError, StreamInvokeSkillResponse, ListSkillInstancesData, ListSkillInstancesError, ListSkillInstancesResponse, CreateSkillInstanceData, CreateSkillInstanceError, CreateSkillInstanceResponse2, UpdateSkillInstanceData, UpdateSkillInstanceError, UpdateSkillInstanceResponse2, PinSkillInstanceData, PinSkillInstanceError, PinSkillInstanceResponse, UnpinSkillInstanceData, UnpinSkillInstanceError, UnpinSkillInstanceResponse, DeleteSkillInstanceData, DeleteSkillInstanceError, DeleteSkillInstanceResponse, ListSkillTriggersData, ListSkillTriggersError, ListSkillTriggersResponse, CreateSkillTriggerData, CreateSkillTriggerError, CreateSkillTriggerResponse2, UpdateSkillTriggerData, UpdateSkillTriggerError, UpdateSkillTriggerResponse2, DeleteSkillTriggerData, DeleteSkillTriggerError, DeleteSkillTriggerResponse, GetSettingsError, GetSettingsResponse, UpdateSettingsData, UpdateSettingsError, UpdateSettingsResponse, CheckSettingsFieldData, CheckSettingsFieldError, CheckSettingsFieldResponse2, GetSubscriptionPlansError, GetSubscriptionPlansResponse2, GetSubscriptionUsageError, GetSubscriptionUsageResponse2, ListModelsError, ListModelsResponse2, CreateCheckoutSessionData, CreateCheckoutSessionError, CreateCheckoutSessionResponse2, CreatePortalSessionError, CreatePortalSessionResponse2, SearchData, SearchError, SearchResponse2, MultiLingualWebSearchData, MultiLingualWebSearchError, MultiLingualWebSearchResponse2, ScrapeData, ScrapeError, ScrapeResponse, UploadData, UploadError, UploadResponse2, ServeStaticError, ServeStaticResponse } from './types.gen';

export const client = createClient(createConfig());

Expand Down Expand Up @@ -63,7 +63,7 @@ export const resendVerification = <ThrowOnError extends boolean = false>(options
* Verify authentication session
* Verify account creation
*/
export const checkVerification = <ThrowOnError extends boolean = false>(options: Options<CheckVerificationData2, ThrowOnError>) => { return (options?.client ?? client).post<CheckVerificationResponse2, CheckVerificationError, ThrowOnError>({
export const checkVerification = <ThrowOnError extends boolean = false>(options: Options<CheckVerificationData, ThrowOnError>) => { return (options?.client ?? client).post<CheckVerificationResponse, CheckVerificationError, ThrowOnError>({
...options,
url: '/auth/verification/check'
}); };
Expand Down
19 changes: 2 additions & 17 deletions packages/ai-workspace-common/src/requests/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1223,21 +1223,6 @@ export type CheckVerificationRequest = {
code: string;
};

export type CheckVerificationData = {
/**
* Access token
*/
accessToken?: string;
/**
* Verification purpose
*/
purpose?: string;
};

export type CheckVerificationResponse = BaseResponse & {
data?: CheckVerificationData;
};

/**
* Email login request
*/
Expand Down Expand Up @@ -2771,11 +2756,11 @@ export type ResendVerificationResponse = (BaseResponse);

export type ResendVerificationError = unknown;

export type CheckVerificationData2 = {
export type CheckVerificationData = {
body: CheckVerificationRequest;
};

export type CheckVerificationResponse2 = (CheckVerificationResponse);
export type CheckVerificationResponse = (BaseResponse);

export type CheckVerificationError = unknown;

Expand Down
18 changes: 1 addition & 17 deletions packages/openapi-schema/schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ paths:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckVerificationResponse'
$ref: '#/components/schemas/BaseResponse'
/auth/logout:
post:
tags:
Expand Down Expand Up @@ -2785,22 +2785,6 @@ components:
code:
type: string
description: Verification code
CheckVerificationData:
type: object
properties:
accessToken:
type: string
description: Access token
purpose:
type: string
description: Verification purpose
CheckVerificationResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
$ref: '#/components/schemas/CheckVerificationData'
EmailLoginRequest:
type: object
description: Email login request
Expand Down
30 changes: 0 additions & 30 deletions packages/openapi-schema/src/schemas.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1549,36 +1549,6 @@ export const CheckVerificationRequestSchema = {
},
} as const;

export const CheckVerificationDataSchema = {
type: 'object',
properties: {
accessToken: {
type: 'string',
description: 'Access token',
},
purpose: {
type: 'string',
description: 'Verification purpose',
},
},
} as const;

export const CheckVerificationResponseSchema = {
allOf: [
{
$ref: '#/components/schemas/BaseResponse',
},
{
type: 'object',
properties: {
data: {
$ref: '#/components/schemas/CheckVerificationData',
},
},
},
],
} as const;

export const EmailLoginRequestSchema = {
type: 'object',
description: 'Email login request',
Expand Down
8 changes: 4 additions & 4 deletions packages/openapi-schema/src/services.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ import type {
ResendVerificationData,
ResendVerificationError,
ResendVerificationResponse,
CheckVerificationData2,
CheckVerificationData,
CheckVerificationError,
CheckVerificationResponse2,
CheckVerificationResponse,
LogoutError,
LogoutResponse,
GetCollabTokenError,
Expand Down Expand Up @@ -279,9 +279,9 @@ export const resendVerification = <ThrowOnError extends boolean = false>(
* Verify account creation
*/
export const checkVerification = <ThrowOnError extends boolean = false>(
options: Options<CheckVerificationData2, ThrowOnError>,
options: Options<CheckVerificationData, ThrowOnError>,
) => {
return (options?.client ?? client).post<CheckVerificationResponse2, CheckVerificationError, ThrowOnError>({
return (options?.client ?? client).post<CheckVerificationResponse, CheckVerificationError, ThrowOnError>({
...options,
url: '/auth/verification/check',
});
Expand Down
19 changes: 2 additions & 17 deletions packages/openapi-schema/src/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1236,21 +1236,6 @@ export type CheckVerificationRequest = {
code: string;
};

export type CheckVerificationData = {
/**
* Access token
*/
accessToken?: string;
/**
* Verification purpose
*/
purpose?: string;
};

export type CheckVerificationResponse = BaseResponse & {
data?: CheckVerificationData;
};

/**
* Email login request
*/
Expand Down Expand Up @@ -2808,11 +2793,11 @@ export type ResendVerificationResponse = BaseResponse;

export type ResendVerificationError = unknown;

export type CheckVerificationData2 = {
export type CheckVerificationData = {
body: CheckVerificationRequest;
};

export type CheckVerificationResponse2 = CheckVerificationResponse;
export type CheckVerificationResponse = BaseResponse;

export type CheckVerificationError = unknown;

Expand Down

0 comments on commit b6593d7

Please sign in to comment.