summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/miauth
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2020-03-28 11:24:37 +0900
committersyuilo <syuilotan@yahoo.co.jp>2020-03-28 11:24:37 +0900
commit6be127e18bdbea6031698baeb8632f917a8346eb (patch)
tree4b7ceb082d76b0628df6496bc802172106721ce9 /src/server/api/endpoints/miauth
parentwip (diff)
downloadmisskey-6be127e18bdbea6031698baeb8632f917a8346eb.tar.gz
misskey-6be127e18bdbea6031698baeb8632f917a8346eb.tar.bz2
misskey-6be127e18bdbea6031698baeb8632f917a8346eb.zip
Implement MiAuth
Diffstat (limited to 'src/server/api/endpoints/miauth')
-rw-r--r--src/server/api/endpoints/miauth/gen-token.ts54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/server/api/endpoints/miauth/gen-token.ts b/src/server/api/endpoints/miauth/gen-token.ts
new file mode 100644
index 0000000000..599ecf477e
--- /dev/null
+++ b/src/server/api/endpoints/miauth/gen-token.ts
@@ -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,
+ });
+});