42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import type { LoaderFunctionArgs } from '@remix-run/node';
|
|
import { logto } from '~/.server/service/auth';
|
|
import { checkErrorLoader } from './check-error.server';
|
|
import { userLoader } from './user.server';
|
|
|
|
export const loader = async (args: LoaderFunctionArgs) => {
|
|
const { params } = args;
|
|
|
|
switch (params.action) {
|
|
case 'check-error':
|
|
return checkErrorLoader(args);
|
|
case 'user':
|
|
return userLoader(args);
|
|
default:
|
|
/**
|
|
* 处理认证路由
|
|
* 支持的路由:
|
|
* - /api/auth/sign-in - 登录
|
|
* - /api/auth/callback - 登录回调
|
|
* - /api/auth/sign-out - 登出
|
|
*/
|
|
return logto.handleAuthRoutes({
|
|
'sign-in': {
|
|
path: '/api/auth/sign-in',
|
|
redirectBackTo: '/api/auth/callback',
|
|
},
|
|
'sign-in-callback': {
|
|
path: '/api/auth/callback',
|
|
redirectBackTo: '/',
|
|
},
|
|
'sign-out': {
|
|
path: '/api/auth/sign-out',
|
|
redirectBackTo: '/',
|
|
},
|
|
'sign-up': {
|
|
path: '/api/auth/sign-up',
|
|
redirectBackTo: '/api/auth/callback',
|
|
},
|
|
})(args);
|
|
}
|
|
};
|