ATlast — you'll never need to find your favorites on another platform again. Find your favs in the ATmosphere.
atproto
16
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(auth): update routes and controllers to consolidate to atproto oauth

- remove email/password auth scaffold

byarielm.fyi b557f94e 91655fb7

verified
+33 -165
+6 -30
.adonisjs/client/registry/index.ts
··· 6 6 const placeholder: any = {} 7 7 8 8 const routes = { 9 + 'login': { 10 + methods: ["GET","HEAD"], 11 + pattern: '/login', 12 + tokens: [{"old":"/login","type":0,"val":"login","end":""}], 13 + types: placeholder as Registry['login']['types'], 14 + }, 9 15 'oauth.logout': { 10 16 methods: ["POST"], 11 17 pattern: '/oauth/logout', ··· 35 41 pattern: '/', 36 42 tokens: [{"old":"/","type":0,"val":"/","end":""}], 37 43 types: placeholder as Registry['home']['types'], 38 - }, 39 - 'new_account.create': { 40 - methods: ["GET","HEAD"], 41 - pattern: '/signup', 42 - tokens: [{"old":"/signup","type":0,"val":"signup","end":""}], 43 - types: placeholder as Registry['new_account.create']['types'], 44 - }, 45 - 'new_account.store': { 46 - methods: ["POST"], 47 - pattern: '/signup', 48 - tokens: [{"old":"/signup","type":0,"val":"signup","end":""}], 49 - types: placeholder as Registry['new_account.store']['types'], 50 - }, 51 - 'session.create': { 52 - methods: ["GET","HEAD"], 53 - pattern: '/login', 54 - tokens: [{"old":"/login","type":0,"val":"login","end":""}], 55 - types: placeholder as Registry['session.create']['types'], 56 - }, 57 - 'session.store': { 58 - methods: ["POST"], 59 - pattern: '/login', 60 - tokens: [{"old":"/login","type":0,"val":"login","end":""}], 61 - types: placeholder as Registry['session.store']['types'], 62 - }, 63 - 'session.destroy': { 64 - methods: ["POST"], 65 - pattern: '/logout', 66 - tokens: [{"old":"/logout","type":0,"val":"logout","end":""}], 67 - types: placeholder as Registry['session.destroy']['types'], 68 44 }, 69 45 } as const satisfies Record<string, AdonisEndpoint> 70 46
+11 -55
.adonisjs/client/registry/schema.d.ts
··· 7 7 export type ParamValue = string | number | bigint | boolean 8 8 9 9 export interface Registry { 10 + 'login': { 11 + methods: ["GET","HEAD"] 12 + pattern: '/login' 13 + types: { 14 + body: {} 15 + paramsTuple: [] 16 + params: {} 17 + query: {} 18 + response: ExtractResponse<Awaited<ReturnType<import('#controllers/oauth_controller').default['showLogin']>>> 19 + } 20 + } 10 21 'oauth.logout': { 11 22 methods: ["POST"] 12 23 pattern: '/oauth/logout' ··· 60 71 params: {} 61 72 query: {} 62 73 response: unknown 63 - } 64 - } 65 - 'new_account.create': { 66 - methods: ["GET","HEAD"] 67 - pattern: '/signup' 68 - types: { 69 - body: {} 70 - paramsTuple: [] 71 - params: {} 72 - query: {} 73 - response: ExtractResponse<Awaited<ReturnType<import('#controllers/new_account_controller').default['create']>>> 74 - } 75 - } 76 - 'new_account.store': { 77 - methods: ["POST"] 78 - pattern: '/signup' 79 - types: { 80 - body: ExtractBody<InferInput<(typeof import('#validators/user').signupValidator)>> 81 - paramsTuple: [] 82 - params: {} 83 - query: ExtractQuery<InferInput<(typeof import('#validators/user').signupValidator)>> 84 - response: ExtractResponse<Awaited<ReturnType<import('#controllers/new_account_controller').default['store']>>> 85 - } 86 - } 87 - 'session.create': { 88 - methods: ["GET","HEAD"] 89 - pattern: '/login' 90 - types: { 91 - body: {} 92 - paramsTuple: [] 93 - params: {} 94 - query: {} 95 - response: ExtractResponse<Awaited<ReturnType<import('#controllers/session_controller').default['create']>>> 96 - } 97 - } 98 - 'session.store': { 99 - methods: ["POST"] 100 - pattern: '/login' 101 - types: { 102 - body: {} 103 - paramsTuple: [] 104 - params: {} 105 - query: {} 106 - response: ExtractResponse<Awaited<ReturnType<import('#controllers/session_controller').default['store']>>> 107 - } 108 - } 109 - 'session.destroy': { 110 - methods: ["POST"] 111 - pattern: '/logout' 112 - types: { 113 - body: {} 114 - paramsTuple: [] 115 - params: {} 116 - query: {} 117 - response: ExtractResponse<Awaited<ReturnType<import('#controllers/session_controller').default['destroy']>>> 118 74 } 119 75 } 120 76 }
+1 -9
.adonisjs/client/registry/tree.d.ts
··· 2 2 import type { routes } from './index.ts' 3 3 4 4 export interface ApiDefinition { 5 + login: typeof routes['login'] 5 6 oauth: { 6 7 logout: typeof routes['oauth.logout'] 7 8 login: typeof routes['oauth.login'] ··· 9 10 callback: typeof routes['oauth.callback'] 10 11 } 11 12 home: typeof routes['home'] 12 - newAccount: { 13 - create: typeof routes['new_account.create'] 14 - store: typeof routes['new_account.store'] 15 - } 16 - session: { 17 - create: typeof routes['session.create'] 18 - store: typeof routes['session.store'] 19 - destroy: typeof routes['session.destroy'] 20 - } 21 13 }
-2
.adonisjs/server/controllers.ts
··· 4 4 */ 5 5 6 6 export const controllers = { 7 - NewAccount: () => import('#controllers/new_account_controller'), 8 7 Oauth: () => import('#controllers/oauth_controller'), 9 - Session: () => import('#controllers/session_controller'), 10 8 }
+3 -12
.adonisjs/server/routes.d.ts
··· 4 4 5 5 export type ScannedRoutes = { 6 6 ALL: { 7 + 'login': { paramsTuple?: []; params?: {} } 7 8 'oauth.logout': { paramsTuple?: []; params?: {} } 8 9 'oauth.login': { paramsTuple?: []; params?: {} } 9 10 'oauth.signup': { paramsTuple?: []; params?: {} } 10 11 'oauth.callback': { paramsTuple?: []; params?: {} } 11 12 'home': { paramsTuple?: []; params?: {} } 12 - 'new_account.create': { paramsTuple?: []; params?: {} } 13 - 'new_account.store': { paramsTuple?: []; params?: {} } 14 - 'session.create': { paramsTuple?: []; params?: {} } 15 - 'session.store': { paramsTuple?: []; params?: {} } 16 - 'session.destroy': { paramsTuple?: []; params?: {} } 17 13 } 18 14 GET: { 15 + 'login': { paramsTuple?: []; params?: {} } 19 16 'oauth.callback': { paramsTuple?: []; params?: {} } 20 17 'home': { paramsTuple?: []; params?: {} } 21 - 'new_account.create': { paramsTuple?: []; params?: {} } 22 - 'session.create': { paramsTuple?: []; params?: {} } 23 18 } 24 19 HEAD: { 20 + 'login': { paramsTuple?: []; params?: {} } 25 21 'oauth.callback': { paramsTuple?: []; params?: {} } 26 22 'home': { paramsTuple?: []; params?: {} } 27 - 'new_account.create': { paramsTuple?: []; params?: {} } 28 - 'session.create': { paramsTuple?: []; params?: {} } 29 23 } 30 24 POST: { 31 25 'oauth.logout': { paramsTuple?: []; params?: {} } 32 26 'oauth.login': { paramsTuple?: []; params?: {} } 33 27 'oauth.signup': { paramsTuple?: []; params?: {} } 34 - 'new_account.store': { paramsTuple?: []; params?: {} } 35 - 'session.store': { paramsTuple?: []; params?: {} } 36 - 'session.destroy': { paramsTuple?: []; params?: {} } 37 28 } 38 29 } 39 30 declare module '@adonisjs/core/types/http' {
-17
app/controllers/new_account_controller.ts
··· 1 - import User from '#models/user' 2 - import { signupValidator } from '#validators/user' 3 - import type { HttpContext } from '@adonisjs/core/http' 4 - 5 - export default class NewAccountController { 6 - async create({ inertia }: HttpContext) { 7 - return inertia.render('auth/signup', {}) 8 - } 9 - 10 - async store({ request, response, auth }: HttpContext) { 11 - const payload = await request.validateUsing(signupValidator) 12 - const user = await User.create({ ...payload }) 13 - 14 - await auth.use('web').login(user) 15 - response.redirect().toRoute('home') 16 - } 17 - }
+4
app/controllers/oauth_controller.ts
··· 46 46 return response.redirect().back() 47 47 } 48 48 49 + async showLogin({ inertia }: HttpContext) { 50 + return inertia.render('auth/login', {}) 51 + } 52 + 49 53 async callback({ response, oauth, auth, logger }: HttpContext) { 50 54 try { 51 55 const session = await oauth.handleCallback()
-21
app/controllers/session_controller.ts
··· 1 - import User from '#models/user' 2 - import type { HttpContext } from '@adonisjs/core/http' 3 - 4 - export default class SessionController { 5 - async create({ inertia }: HttpContext) { 6 - return inertia.render('auth/login', {}) 7 - } 8 - 9 - async store({ request, auth, response }: HttpContext) { 10 - const { email, password } = request.all() 11 - const user = await User.verifyCredentials(email, password) 12 - 13 - await auth.use('web').login(user) 14 - response.redirect().toRoute('home') 15 - } 16 - 17 - async destroy({ auth, response }: HttpContext) { 18 - await auth.use('web').logout() 19 - response.redirect().toRoute('session.create') 20 - } 21 - }
+1 -1
inertia/layouts/default.vue
··· 50 50 </template> 51 51 <template v-else> 52 52 <!-- <Link route="new_account.create">Signup</Link> --> 53 - <Link route="session.create">Login</Link> 53 + <Link route="login">Login</Link> 54 54 </template> 55 55 </nav> 56 56 </div>
+3 -18
start/routes.ts
··· 7 7 | 8 8 */ 9 9 10 - import { middleware } from '#start/kernel' 11 - import { controllers } from '#generated/controllers' 12 10 import router from '@adonisjs/core/services/router' 13 - import '#start/routes/oauth'; 11 + import '#start/routes/oauth' 14 12 15 13 router.on('/').renderInertia('home', {}).as('home') 16 14 17 - router 18 - .group(() => { 19 - router.get('signup', [controllers.NewAccount, 'create']) 20 - router.post('signup', [controllers.NewAccount, 'store']) 21 - 22 - router.get('login', [controllers.Session, 'create']) 23 - router.post('login', [controllers.Session, 'store']) 24 - }) 25 - .use(middleware.guest()) 26 - 27 - router 28 - .group(() => { 29 - router.post('logout', [controllers.Session, 'destroy']) 30 - }) 31 - .use(middleware.auth()) 15 + //router.group(() => {}).use(middleware.guest()) 16 + //router.group(() => {}).use(middleware.auth())
+4
start/routes/oauth.ts
··· 3 3 4 4 const OAuthController = () => import('#controllers/oauth_controller') 5 5 6 + // UI route 7 + router.get('login', [OAuthController, 'showLogin']).as('login').use(middleware.guest()) 8 + 9 + // Protocol routes 6 10 router 7 11 .post('/oauth/logout', [OAuthController, 'handleLogout']) 8 12 .as('oauth.logout')