@steedos/accounts 3.0.0-beta.15 → 3.0.0-beta.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/core/index.js +87 -42
  2. package/lib/core/index.js.map +1 -1
  3. package/lib/rest-express/endpoints/authorize.js +2 -2
  4. package/lib/rest-express/endpoints/authorize.js.map +1 -1
  5. package/lib/rest-express/endpoints/impersonate.js +25 -23
  6. package/lib/rest-express/endpoints/impersonate.js.map +1 -1
  7. package/lib/rest-express/endpoints/login.js +95 -93
  8. package/lib/rest-express/endpoints/login.js.map +1 -1
  9. package/lib/rest-express/endpoints/logout.js +80 -73
  10. package/lib/rest-express/endpoints/logout.js.map +1 -1
  11. package/lib/rest-express/endpoints/oauth/provider-callback.js +35 -33
  12. package/lib/rest-express/endpoints/oauth/provider-callback.js.map +1 -1
  13. package/lib/rest-express/endpoints/password/change-password.js +95 -90
  14. package/lib/rest-express/endpoints/password/change-password.js.map +1 -1
  15. package/lib/rest-express/endpoints/refresh-access-token.js +25 -23
  16. package/lib/rest-express/endpoints/refresh-access-token.js.map +1 -1
  17. package/lib/rest-express/endpoints/service-authenticate.js +76 -74
  18. package/lib/rest-express/endpoints/service-authenticate.js.map +1 -1
  19. package/lib/rest-express/endpoints/steedos/get-tenant.js +62 -39
  20. package/lib/rest-express/endpoints/steedos/get-tenant.js.map +1 -1
  21. package/lib/rest-express/endpoints/steedos/settings.js +119 -88
  22. package/lib/rest-express/endpoints/steedos/settings.js.map +1 -1
  23. package/lib/rest-express/endpoints/update-session.js +44 -42
  24. package/lib/rest-express/endpoints/update-session.js.map +1 -1
  25. package/lib/rest-express/user-loader.js +82 -67
  26. package/lib/rest-express/user-loader.js.map +1 -1
  27. package/lib/rest-express/utils/getClientIp.js +16 -0
  28. package/lib/rest-express/utils/getClientIp.js.map +1 -0
  29. package/package.json +5 -6
  30. package/src/core/index.ts +197 -145
  31. package/src/rest-express/endpoints/authorize.ts +2 -2
  32. package/src/rest-express/endpoints/impersonate.ts +30 -31
  33. package/src/rest-express/endpoints/login.ts +66 -61
  34. package/src/rest-express/endpoints/logout.ts +74 -72
  35. package/src/rest-express/endpoints/oauth/provider-callback.ts +45 -38
  36. package/src/rest-express/endpoints/password/change-password.ts +94 -83
  37. package/src/rest-express/endpoints/refresh-access-token.ts +23 -24
  38. package/src/rest-express/endpoints/service-authenticate.ts +87 -68
  39. package/src/rest-express/endpoints/steedos/get-tenant.ts +56 -38
  40. package/src/rest-express/endpoints/steedos/settings.ts +117 -88
  41. package/src/rest-express/endpoints/update-session.ts +50 -42
  42. package/src/rest-express/user-loader.ts +68 -58
  43. package/src/rest-express/utils/getClientIp.ts +25 -0
@@ -1,76 +1,95 @@
1
- import * as express from 'express';
2
- import * as requestIp from 'request-ip';
3
- import { AccountsServer } from '../../server';
4
- import { getUserAgent } from '../utils/get-user-agent';
5
- import { sendError } from '../utils/send-error';
6
- import { setAuthCookies, hashStampedToken } from '../utils/steedos-auth';
7
- import { db } from '../../db';
8
- import * as _ from 'lodash';
9
- import { getUserSpace } from '../utils/users'
1
+ import * as express from "express";
2
+ import { getClientIp } from "../utils/getClientIp";
3
+ import { AccountsServer } from "../../server";
4
+ import { getUserAgent } from "../utils/get-user-agent";
5
+ import { sendError } from "../utils/send-error";
6
+ import { setAuthCookies, hashStampedToken } from "../utils/steedos-auth";
7
+ import { db } from "../../db";
8
+ import * as _ from "lodash";
9
+ import { getUserSpace } from "../utils/users";
10
10
 
11
- export const serviceAuthenticate = (accountsServer: AccountsServer) => async (
12
- req: express.Request,
13
- res: express.Response
14
- ) => {
15
- try {
16
- const serviceName = req.params.service;
17
- let userAgent = getUserAgent(req) || '';
18
- const ip = requestIp.getClientIp(req);
19
- const email = req.body.user.email;
20
- const spaceId = req.body.spaceId;
21
- let services: any = accountsServer.getServices();
22
- let db = services[serviceName].db;
11
+ export const serviceAuthenticate =
12
+ (accountsServer: AccountsServer) =>
13
+ async (req: express.Request, res: express.Response) => {
14
+ try {
15
+ const serviceName = req.params.service;
16
+ let userAgent = getUserAgent(req) || "";
17
+ const ip = getClientIp(req);
18
+ const email = req.body.user.email;
19
+ const spaceId = req.body.spaceId;
20
+ let services: any = accountsServer.getServices();
21
+ let db = services[serviceName].db;
23
22
 
24
- if(email && email.indexOf("@") < 0){
25
- req.body.user.username = email
26
- }
23
+ if (email && email.indexOf("@") < 0) {
24
+ req.body.user.username = email;
25
+ }
27
26
 
28
- const loggedInUser: any = await accountsServer.loginWithService(serviceName, req.body, {
29
- ip,
30
- userAgent
31
- });
27
+ const loggedInUser: any = await accountsServer.loginWithService(
28
+ serviceName,
29
+ req.body,
30
+ {
31
+ ip,
32
+ userAgent,
33
+ },
34
+ );
32
35
 
33
- //获取user session
34
- let session:any = await accountsServer.findSessionByAccessToken(loggedInUser.tokens.accessToken)
36
+ //获取user session
37
+ let session: any = await accountsServer.findSessionByAccessToken(
38
+ loggedInUser.tokens.accessToken,
39
+ );
35
40
 
36
- //获取用户有效的工作区Id,并且写入Sessions中
37
- let validSpaceId = await getUserSpace(session.userId, spaceId);
38
- if(validSpaceId){
39
- userAgent = `${userAgent} Space/${validSpaceId}`
40
- db.updateSession(loggedInUser.sessionId, {
41
- ip,
42
- userAgent});
43
- }
41
+ //获取用户有效的工作区Id,并且写入Sessions中
42
+ let validSpaceId = await getUserSpace(session.userId, spaceId);
43
+ if (validSpaceId) {
44
+ userAgent = `${userAgent} Space/${validSpaceId}`;
45
+ db.updateSession(loggedInUser.sessionId, {
46
+ ip,
47
+ userAgent,
48
+ });
49
+ }
44
50
 
45
- //确认用户密码是否过期
46
- let user = await db.collection.findOne({_id: session.userId}, { password_expired: 1 })
51
+ //确认用户密码是否过期
52
+ let user = await db.collection.findOne(
53
+ { _id: session.userId },
54
+ { password_expired: 1 },
55
+ );
47
56
 
48
- //创建Meteor token
49
- let authToken = null;
50
- let stampedAuthToken = {
51
- token: session.token,
52
- when: new Date
53
- };
54
- authToken = stampedAuthToken.token;
55
- let hashedToken = hashStampedToken(stampedAuthToken);
56
- let _user = await db.collection.findOne({_id: session.userId}, { services:1 })
57
- if(!_user['services']){
58
- _user['services'] = {}
59
- }
60
- if (!_user['services']['resume']) {
61
- _user['services']['resume'] = {loginTokens: []}
62
- }
63
- if (!_user['services']['resume']['loginTokens']) {
64
- _user['services']['resume']['loginTokens'] = [];
65
- }
66
- _user['services']['resume']['loginTokens'].push(hashedToken)
67
- let data = { services: _user['services'] }
68
- await db.collection.updateOne({_id: session.userId}, {$set: data});
69
- // 设置cookies
70
- setAuthCookies(req, res, session.userId, authToken, loggedInUser.tokens.accessToken, validSpaceId);
57
+ //创建Meteor token
58
+ let authToken = null;
59
+ let stampedAuthToken = {
60
+ token: session.token,
61
+ when: new Date(),
62
+ };
63
+ authToken = stampedAuthToken.token;
64
+ let hashedToken = hashStampedToken(stampedAuthToken);
65
+ let _user = await db.collection.findOne(
66
+ { _id: session.userId },
67
+ { services: 1 },
68
+ );
69
+ if (!_user["services"]) {
70
+ _user["services"] = {};
71
+ }
72
+ if (!_user["services"]["resume"]) {
73
+ _user["services"]["resume"] = { loginTokens: [] };
74
+ }
75
+ if (!_user["services"]["resume"]["loginTokens"]) {
76
+ _user["services"]["resume"]["loginTokens"] = [];
77
+ }
78
+ _user["services"]["resume"]["loginTokens"].push(hashedToken);
79
+ let data = { services: _user["services"] };
80
+ await db.collection.updateOne({ _id: session.userId }, { $set: data });
81
+ // 设置cookies
82
+ setAuthCookies(
83
+ req,
84
+ res,
85
+ session.userId,
86
+ authToken,
87
+ loggedInUser.tokens.accessToken,
88
+ validSpaceId,
89
+ );
71
90
 
72
- res.json(loggedInUser);
73
- } catch (err) {
74
- sendError(res, err);
75
- }
76
- };
91
+ res.json(loggedInUser);
92
+ } catch (err) {
93
+ sendError(res, err);
94
+ }
95
+ };
@@ -1,44 +1,62 @@
1
- import * as express from 'express';
2
- import { AccountsServer } from '../../../server';
3
- import { sendError } from '../../utils/send-error';
4
- import { getSteedosConfig } from '@steedos/objectql'
5
- import { db } from '../../../db';
6
- import {getSteedosService } from '../../../core'
1
+ import * as express from "express";
2
+ import { AccountsServer } from "../../../server";
3
+ import { sendError } from "../../utils/send-error";
4
+ import { getSteedosConfig } from "@steedos/objectql";
5
+ import { db } from "../../../db";
6
+ import { getSteedosService } from "../../../core";
7
7
 
8
- export const getTenant = (accountsServer: AccountsServer) => async (
9
- req: express.Request,
10
- res: express.Response
11
- ) => {
12
- try {
8
+ export const getTenant =
9
+ (accountsServer: AccountsServer) =>
10
+ async (req: express.Request, res: express.Response) => {
11
+ try {
12
+ const spaceId = req.params.id;
13
+ if (!spaceId) throw new Error("accounts.tenant_id_required");
13
14
 
14
- const spaceId = req.params.id;
15
- if (!spaceId)
16
- throw new Error("accounts.tenant_id_required")
17
-
18
- const spaceDoc = await db.findOne("spaces", spaceId, {fields: ["name", "avatar", "avatar_dark", "background", "enable_register", "account_logo"]})
19
-
20
- if(!spaceDoc){
21
- return res.send({
22
- exists: false
15
+ const spaceDoc = await db.findOne("spaces", spaceId, {
16
+ fields: [
17
+ "name",
18
+ "avatar",
19
+ "avatar_dark",
20
+ "background",
21
+ "enable_register",
22
+ "account_logo",
23
+ ],
23
24
  });
24
- }
25
-
26
- let steedosService = getSteedosService();
27
25
 
28
- if (steedosService) {
29
- if (spaceDoc.account_logo) {
30
- spaceDoc.logo_url = steedosService + "api/files/avatars/" + spaceDoc.account_logo
31
- } else if (spaceDoc.avatar_dark) {
32
- spaceDoc.logo_url = steedosService + "api/files/avatars/" + spaceDoc.avatar_dark
33
- } else if (spaceDoc.avatar) {
34
- spaceDoc.logo_url = steedosService + "api/files/avatars/" + spaceDoc.avatar
35
- }
36
- if (spaceDoc.background) {
37
- spaceDoc.background_url = steedosService + "api/files/avatars/" + spaceDoc.background
26
+ if (!spaceDoc) {
27
+ return res.send({
28
+ exists: false,
29
+ });
30
+ }
31
+
32
+ let steedosService = getSteedosService();
33
+
34
+ if (steedosService) {
35
+ if (spaceDoc.account_logo) {
36
+ spaceDoc.logo_url =
37
+ steedosService +
38
+ "api/v6/files/cfs.avatars.filerecord/" +
39
+ spaceDoc.account_logo;
40
+ } else if (spaceDoc.avatar_dark) {
41
+ spaceDoc.logo_url =
42
+ steedosService +
43
+ "api/v6/files/cfs.avatars.filerecord/" +
44
+ spaceDoc.avatar_dark;
45
+ } else if (spaceDoc.avatar) {
46
+ spaceDoc.logo_url =
47
+ steedosService +
48
+ "api/v6/files/cfs.avatars.filerecord/" +
49
+ spaceDoc.avatar;
50
+ }
51
+ if (spaceDoc.background) {
52
+ spaceDoc.background_url =
53
+ steedosService +
54
+ "api/v6/files/cfs.avatars.filerecord/" +
55
+ spaceDoc.background;
56
+ }
38
57
  }
58
+ res.json(spaceDoc);
59
+ } catch (err) {
60
+ sendError(res, err);
39
61
  }
40
- res.json(spaceDoc);
41
- } catch (err) {
42
- sendError(res, err);
43
- }
44
- };
62
+ };
@@ -3,110 +3,139 @@
3
3
  * @Date: 2022-03-28 09:35:34
4
4
  * @LastEditors: baozhoutao@steedos.com
5
5
  * @LastEditTime: 2025-02-21 14:33:10
6
- * @Description:
6
+ * @Description:
7
7
  */
8
- import * as express from 'express';
9
- import * as _ from 'lodash';
10
- import { AccountsServer } from '../../../server';
11
- import { getSteedosConfig, getSteedosSchema } from '@steedos/objectql'
12
- import { db } from '../../../db';
13
- import { canSendEmail, canSendSMS, getSteedosService } from '../../../core';
14
- const validator = require('validator');
15
- const util = require('@steedos/utils')
16
- const clone = require('clone');
8
+ import * as express from "express";
9
+ import * as _ from "lodash";
10
+ import { AccountsServer } from "../../../server";
11
+ import { getSteedosConfig, getSteedosSchema } from "@steedos/objectql";
12
+ import { db } from "../../../db";
13
+ import { canSendEmail, canSendSMS, getSteedosService } from "../../../core";
14
+ const validator = require("validator");
15
+ const util = require("@steedos/utils");
16
+ const clone = require("clone");
17
17
 
18
18
  const config = getSteedosConfig();
19
19
 
20
- export const getSettings = (accountsServer: AccountsServer) => async (
21
- req: express.Request,
22
- res: express.Response
23
- ) => {
24
- let tenant: any = {
25
- name: "Steedos",
26
- logo_url: undefined,
27
- background_url: undefined,
28
- enable_create_tenant: true,
29
- enable_register: true,
30
- enable_forget_password: true,
31
- enable_password_login: true,
32
- enable_mobile_code_login: false,
33
- enable_email_code_login: false,
34
- enable_bind_mobile: false,
35
- enable_bind_email: false,
36
- enable_saas: validator.toBoolean(process.env.STEEDOS_TENANT_ENABLE_SAAS || 'false', true),
37
- enable_open_geetest: validator.toBoolean(process.env.STEEDOS_CAPTCHA_GEETEST_ENABLED || 'false'),
38
- page_login: process.env.STEEDOS_TENANT_PAGE_LOGIN,
39
- page_logout: process.env.STEEDOS_TENANT_PAGE_LOGOUT
40
- }
20
+ export const getSettings =
21
+ (accountsServer: AccountsServer) =>
22
+ async (req: express.Request, res: express.Response) => {
23
+ let tenant: any = {
24
+ name: "Steedos",
25
+ logo_url: undefined,
26
+ background_url: undefined,
27
+ enable_create_tenant: true,
28
+ enable_register: true,
29
+ enable_forget_password: true,
30
+ enable_password_login: true,
31
+ enable_mobile_code_login: false,
32
+ enable_email_code_login: false,
33
+ enable_bind_mobile: false,
34
+ enable_bind_email: false,
35
+ enable_saas: validator.toBoolean(
36
+ process.env.STEEDOS_TENANT_ENABLE_SAAS || "false",
37
+ true,
38
+ ),
39
+ enable_open_geetest: validator.toBoolean(
40
+ process.env.STEEDOS_CAPTCHA_GEETEST_ENABLED || "false",
41
+ ),
42
+ page_login: process.env.STEEDOS_TENANT_PAGE_LOGIN,
43
+ page_logout: process.env.STEEDOS_TENANT_PAGE_LOGOUT,
44
+ };
41
45
 
42
- if (config.tenant) {
43
- _.assignIn(tenant, config.tenant)
44
- }
46
+ if (config.tenant) {
47
+ _.assignIn(tenant, config.tenant);
48
+ }
45
49
 
46
- if(!tenant._id){
47
- tenant._id = process.env.STEEDOS_TENANT_ID
48
- }
50
+ if (!tenant._id) {
51
+ tenant._id = process.env.STEEDOS_TENANT_ID;
52
+ }
49
53
 
50
- const platform = (global as any).Steedos.settings.public?.platform || {}
51
-
54
+ const platform = (global as any).Steedos.settings.public?.platform || {};
52
55
 
53
- if (tenant._id) {
54
- let spaceDoc = await db.findOne("spaces", tenant._id, {fields: ["name", "avatar", "avatar_dark", "background", "enable_register", "account_logo", "favicon"]})
55
- let steedosService = getSteedosService();
56
- if (steedosService && spaceDoc) {
56
+ if (tenant._id) {
57
+ let spaceDoc = await db.findOne("spaces", tenant._id, {
58
+ fields: [
59
+ "name",
60
+ "avatar",
61
+ "avatar_dark",
62
+ "background",
63
+ "enable_register",
64
+ "account_logo",
65
+ "favicon",
66
+ ],
67
+ });
68
+ let steedosService = getSteedosService();
69
+ if (steedosService && spaceDoc) {
57
70
  _.assignIn(tenant, spaceDoc);
58
- if (spaceDoc.account_logo) {
59
- tenant.logo_url = steedosService + "api/files/avatars/" + spaceDoc.account_logo
60
- } else if (spaceDoc.avatar_dark) {
61
- tenant.logo_url = steedosService + "api/files/avatars/" + spaceDoc.avatar_dark
62
- } else if (spaceDoc.avatar) {
63
- tenant.logo_url = steedosService + "api/files/avatars/" + spaceDoc.avatar
64
- }
65
- if (spaceDoc.background) {
66
- tenant.background_url = steedosService + "api/files/avatars/" + spaceDoc.background
67
- }
68
- if (platform?.is_oem && spaceDoc.favicon){
69
- tenant.favicon_url = steedosService + "api/files/avatars/" + spaceDoc.favicon
71
+ if (spaceDoc.account_logo) {
72
+ tenant.logo_url =
73
+ steedosService +
74
+ "api/v6/files/cfs.avatars.filerecord/" +
75
+ spaceDoc.account_logo;
76
+ } else if (spaceDoc.avatar_dark) {
77
+ tenant.logo_url =
78
+ steedosService +
79
+ "api/v6/files/cfs.avatars.filerecord/" +
80
+ spaceDoc.avatar_dark;
81
+ } else if (spaceDoc.avatar) {
82
+ tenant.logo_url =
83
+ steedosService +
84
+ "api/v6/files/cfs.avatars.filerecord/" +
85
+ spaceDoc.avatar;
86
+ }
87
+ if (spaceDoc.background) {
88
+ tenant.background_url =
89
+ steedosService +
90
+ "api/v6/files/cfs.avatars.filerecord/" +
91
+ spaceDoc.background;
92
+ }
93
+ if (platform?.is_oem && spaceDoc.favicon) {
94
+ tenant.favicon_url =
95
+ steedosService +
96
+ "api/v6/files/cfs.avatars.filerecord/" +
97
+ spaceDoc.favicon;
98
+ }
70
99
  }
71
100
  }
72
- }
73
-
74
- let already_mail_service = canSendEmail();
75
- let already_sms_service = true || canSendSMS();
76
101
 
77
- //allowInit
78
- const broker = getSteedosSchema().broker;
79
- const serverInitInfo = {
80
-
81
- };
102
+ let already_mail_service = canSendEmail();
103
+ let already_sms_service = true || canSendSMS();
82
104
 
83
- const _tenant = clone(tenant);
105
+ //allowInit
106
+ const broker = getSteedosSchema().broker;
107
+ const serverInitInfo = {};
84
108
 
85
- delete _tenant['tokenSecret'];
86
- delete _tenant['accessTokenExpiresIn']
87
- delete _tenant['refreshTokenExpiresIn']
109
+ const _tenant = clone(tenant);
88
110
 
89
- if(tenant.enable_saas){
90
- delete _tenant._id;
91
- }
111
+ delete _tenant["tokenSecret"];
112
+ delete _tenant["accessTokenExpiresIn"];
113
+ delete _tenant["refreshTokenExpiresIn"];
92
114
 
115
+ if (tenant.enable_saas) {
116
+ delete _tenant._id;
117
+ }
93
118
 
94
- let settings = {};
119
+ let settings = {};
95
120
 
96
- if(tenant._id){
97
- settings = await util.getSettings(tenant._id, true)
98
- }
121
+ if (tenant._id) {
122
+ settings = await util.getSettings(tenant._id, true);
123
+ }
99
124
 
100
- res.json({
101
- tenant: _tenant,
102
- password: config.password ? config.password : ( config.public?.password ? config.public?.password : {} ),
103
- root_url: process.env.ROOT_URL,
104
- already_mail_service: already_mail_service,
105
- already_sms_service: already_sms_service,
106
- serverInitInfo: serverInitInfo,
107
- redirect_url_whitelist: process.env.REDIRECT_URL_WHITELIST,
108
- platform: platform,
109
- public: (global as any).Steedos.settings.public || {},
110
- settings: settings
111
- })
112
- }
125
+ res.json({
126
+ tenant: _tenant,
127
+ password: config.password
128
+ ? config.password
129
+ : config.public?.password
130
+ ? config.public?.password
131
+ : {},
132
+ root_url: process.env.ROOT_URL,
133
+ already_mail_service: already_mail_service,
134
+ already_sms_service: already_sms_service,
135
+ serverInitInfo: serverInitInfo,
136
+ redirect_url_whitelist: process.env.REDIRECT_URL_WHITELIST,
137
+ platform: platform,
138
+ public: (global as any).Steedos.settings.public || {},
139
+ settings: settings,
140
+ });
141
+ };
@@ -1,46 +1,54 @@
1
- import * as express from 'express';
2
- import * as requestIp from 'request-ip';
3
- import { AccountsServer } from '../../server';
4
- import { getUserAgent } from '../utils/get-user-agent';
5
- import { sendError } from '../utils/send-error';
6
- import { setAuthCookies, getAuthTokenCookie } from '../utils/steedos-auth';
7
- import { db } from '../../db';
8
- import { getUserSpace } from '../utils/users'
9
- import * as _ from 'lodash';
1
+ import * as express from "express";
2
+ import { getClientIp } from "../utils/getClientIp";
3
+ import { AccountsServer } from "../../server";
4
+ import { getUserAgent } from "../utils/get-user-agent";
5
+ import { sendError } from "../utils/send-error";
6
+ import { setAuthCookies, getAuthTokenCookie } from "../utils/steedos-auth";
7
+ import { db } from "../../db";
8
+ import { getUserSpace } from "../utils/users";
9
+ import * as _ from "lodash";
10
10
 
11
- export const updateSession = (accountsServer: AccountsServer) => async (
12
- req: express.Request,
13
- res: express.Response
14
- ) => {
15
- try {
16
- const userId = (req as any).user._id;
17
- const serviceName = req.params.service;
18
- let userAgent = getUserAgent(req) || '';
19
- const ip = requestIp.getClientIp(req);
20
- let services: any = accountsServer.getServices();
21
- let db = services[serviceName].db;
22
- const spaceId = req.body.spaceId;
23
- let accessToken = req.body.accessToken;
24
- let session:any = await accountsServer.findSessionByAccessToken(accessToken)
11
+ export const updateSession =
12
+ (accountsServer: AccountsServer) =>
13
+ async (req: express.Request, res: express.Response) => {
14
+ try {
15
+ const userId = (req as any).user._id;
16
+ const serviceName = req.params.service;
17
+ let userAgent = getUserAgent(req) || "";
18
+ const ip = getClientIp(req);
19
+ let services: any = accountsServer.getServices();
20
+ let db = services[serviceName].db;
21
+ const spaceId = req.body.spaceId;
22
+ let accessToken = req.body.accessToken;
23
+ let session: any =
24
+ await accountsServer.findSessionByAccessToken(accessToken);
25
25
 
26
- if(!session){
27
- throw new Error('Invalid accessToken');
28
- }
26
+ if (!session) {
27
+ throw new Error("Invalid accessToken");
28
+ }
29
29
 
30
- //获取用户有效的工作区Id,并且写入Sessions中
31
- let validSpaceId = await getUserSpace(userId, spaceId);
32
- if(validSpaceId){
33
- userAgent = `${userAgent} Space/${validSpaceId}`
34
- db.updateSession(session.id, {
35
- ip,
36
- userAgent});
37
- }
38
-
39
- // 设置cookies
40
- setAuthCookies(req, res, session.userId, getAuthTokenCookie(req, res), accessToken, validSpaceId);
30
+ //获取用户有效的工作区Id,并且写入Sessions中
31
+ let validSpaceId = await getUserSpace(userId, spaceId);
32
+ if (validSpaceId) {
33
+ userAgent = `${userAgent} Space/${validSpaceId}`;
34
+ db.updateSession(session.id, {
35
+ ip,
36
+ userAgent,
37
+ });
38
+ }
41
39
 
42
- res.json({});
43
- } catch (err) {
44
- sendError(res, err);
45
- }
46
- };
40
+ // 设置cookies
41
+ setAuthCookies(
42
+ req,
43
+ res,
44
+ session.userId,
45
+ getAuthTokenCookie(req, res),
46
+ accessToken,
47
+ validSpaceId,
48
+ );
49
+
50
+ res.json({});
51
+ } catch (err) {
52
+ sendError(res, err);
53
+ }
54
+ };