Implement MiAuth

This commit is contained in:
syuilo
2020-03-28 11:24:37 +09:00
parent 608b8bb741
commit 6be127e18b
19 changed files with 330 additions and 48 deletions

View File

@@ -28,9 +28,7 @@ export const meta = {
}
};
export default define(meta, async (ps, user, app) => {
const isSecure = user != null && app == null;
export default define(meta, async (ps, user, isSecure) => {
// Lookup app
const ap = await Apps.findOne(ps.appId);

View File

@@ -78,7 +78,7 @@ export const meta = {
}
};
export default define(meta, async (ps, user, app, file, cleanup) => {
export default define(meta, async (ps, user, isSecure, file, cleanup) => {
// Get 'name' parameter
let name = ps.name || file.originalname;
if (name !== undefined && name !== null) {

View File

@@ -19,9 +19,7 @@ export const meta = {
},
};
export default define(meta, async (ps, user, app) => {
const isSecure = user != null && app == null;
export default define(meta, async (ps, user, isSecure) => {
return await Users.pack(user, user, {
detail: true,
includeHasUnreadNotes: true,

View File

@@ -178,9 +178,7 @@ export const meta = {
}
};
export default define(meta, async (ps, user, app) => {
const isSecure = user != null && app == null;
export default define(meta, async (ps, user, isSecure) => {
const updates = {} as Partial<User>;
const profileUpdates = {} as Partial<UserProfile>;

View File

@@ -0,0 +1,54 @@
import rndstr from 'rndstr';
import $ from 'cafy';
import define from '../../define';
import { AccessTokens } from '../../../../models';
import { genId } from '../../../../misc/gen-id';
export const meta = {
tags: ['auth'],
requireCredential: true as const,
secure: true,
params: {
session: {
validator: $.str
},
name: {
validator: $.nullable.optional.str
},
description: {
validator: $.nullable.optional.str,
},
iconUrl: {
validator: $.nullable.optional.str,
},
permission: {
validator: $.arr($.str).unique(),
},
},
};
export default define(meta, async (ps, user) => {
// Generate access token
const accessToken = rndstr('a-zA-Z0-9', 32);
// Insert access token doc
await AccessTokens.save({
id: genId(),
createdAt: new Date(),
session: ps.session,
userId: user.id,
token: accessToken,
hash: accessToken,
name: ps.name,
description: ps.description,
iconUrl: ps.iconUrl,
permission: ps.permission,
});
});

View File

@@ -209,7 +209,7 @@ export const meta = {
}
};
export default define(meta, async (ps, user, app) => {
export default define(meta, async (ps, user) => {
let visibleUsers: User[] = [];
if (ps.visibleUserIds) {
visibleUsers = (await Promise.all(ps.visibleUserIds.map(id => Users.findOne(id))))
@@ -281,7 +281,6 @@ export default define(meta, async (ps, user, app) => {
reply,
renote,
cw: ps.cw,
app,
viaMobile: ps.viaMobile,
localOnly: ps.localOnly,
visibility: ps.visibility,