mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-12-28 16:00:24 +05:30
28 lines
896 B
TypeScript
28 lines
896 B
TypeScript
|
import AbstractState from './AbstractState';
|
||
|
import { AuthContext } from './AuthFlow';
|
||
|
import CompleteState from './CompleteState';
|
||
|
import DeviceCodeState from './DeviceCodeState';
|
||
|
|
||
|
export default class InitOAuthDeviceCodeFlowState extends AbstractState {
|
||
|
async enter(context: AuthContext): Promise<void> {
|
||
|
const { query } = context.getRequest();
|
||
|
|
||
|
const userCode = query.get('user_code');
|
||
|
|
||
|
if (userCode) {
|
||
|
try {
|
||
|
await context.run('oAuthValidate', {
|
||
|
params: { userCode },
|
||
|
description: query.get('description')!,
|
||
|
prompt: query.get('prompt')!,
|
||
|
});
|
||
|
await context.setState(new CompleteState());
|
||
|
} catch {
|
||
|
// Ok, fallback to the default
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return context.setState(new DeviceCodeState());
|
||
|
}
|
||
|
}
|