routes.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. let Parse = global.Parse
  2. let bodyParser = require('body-parser')
  3. const pgp = require('pg-promise')();
  4. // const router = require('express').Router();
  5. // router.use(bodyParser.json({ limit: '10mb' }))
  6. // router.use(bodyParser.urlencoded({ extended: false }))
  7. export function defineTbookReview(app){
  8. app.get("/parse/api/review/test", async (req, res, next) => {
  9. res.json({
  10. code: 200,
  11. data: "test"
  12. })
  13. })
  14. app.post("/parse/api/review/token", async (req, res) => {
  15. let refer = req.headers["referer"] || req.headers["referered"];
  16. // 检查referer来源
  17. if (refer && refer.includes('https://145.tbook.com.cn')) {
  18. Parse.User.logIn('145review', 'review-textbook145').then((user) => {
  19. console.log(user?.get('sessionToken'));
  20. res.json({
  21. token: user?.get('sessionToken'),
  22. })
  23. }).catch(err=>{
  24. goWrong(res, "invalid user");
  25. })
  26. }else{
  27. res.json({
  28. code: 404,
  29. })
  30. }
  31. })
  32. }
  33. // router.post("/login", async (req, res, next) => {
  34. // goWrong(res, "接口已停止维护");
  35. // return
  36. // let id = req.body.id;
  37. // if (!id) {
  38. // goWrong(res, "参数不完整,请检查");
  39. // return
  40. // }
  41. // // 检查用户信息
  42. // let query = new global.Parse.Query("_User");
  43. // query.equalTo("objectId", id);
  44. // let user = query.first({ useMasterKey: true });
  45. // if (user?.id) {
  46. // let token = await setMobileSessionToken(user)
  47. // res.json({
  48. // code: 200,
  49. // msg: '登录成功',
  50. // data: {
  51. // userId: user.id,
  52. // username: user.get("username"),
  53. // mobile: user.get("mobile"),
  54. // token: token?.get("sessionToken")
  55. // }
  56. // })
  57. // return
  58. // }
  59. // goWrong(res, "用户不存在,请先注册")
  60. // })
  61. // router.post("/register", async (req, res, next) => {
  62. // let company = req.body.company;
  63. // let mobile = req.body.mobile;
  64. // let code = req.body.code;
  65. // let password = req.body.password
  66. // if (!company || !mobile || !code) {
  67. // goWrong(res, "参数不完整,请检查");
  68. // return
  69. // }
  70. // // 检查用户信息
  71. // let user;
  72. // user = await getUserByMobile(mobile, company);
  73. // if (user) {
  74. // // goWrong(res, "用户已存在,请登录")
  75. // let token = await setMobileSessionToken(user)
  76. // res.json({
  77. // code: 200,
  78. // msg: '用户已存在,请登录',
  79. // data: {
  80. // userId: user.id,
  81. // username: user.get("username"),
  82. // mobile: user.get("mobile"),
  83. // token: token?.get("sessionToken")
  84. // }
  85. // })
  86. // return
  87. // }
  88. // try {
  89. // let _User = Parse.Object.extend("_User")
  90. // let User = new _User
  91. // User.set("username", company + mobile)
  92. // User.set("password", company + mobile)
  93. // User.set("company", {
  94. // __type: 'Pointer',
  95. // className: 'Company',
  96. // objectId: company
  97. // })
  98. // User.set("mobile", mobile)
  99. // User.set("status", 'normal')
  100. // let saveUser = await User.save({ useMasterKey: true })
  101. // let token = await setMobileSessionToken(saveUser)
  102. // res.json({
  103. // code: 200,
  104. // msg: '注册成功',
  105. // data: {
  106. // userId: saveUser.id,
  107. // username: saveUser.get("username"),
  108. // mobile: saveUser.get("mobile"),
  109. // token: token?.get("sessionToken")
  110. // }
  111. // })
  112. // } catch (error) {
  113. // console.log(error)
  114. // return
  115. // }
  116. // })
  117. function goWrong(response, msg) {
  118. response.status(500)
  119. response.json({
  120. code: 500,
  121. mess: msg
  122. })
  123. return
  124. }
  125. /* 检查用户是否存在 */
  126. function getUserByMobile(mobile, company) {
  127. let query = new global.Parse.Query("_User");
  128. query.equalTo("mobile", mobile);
  129. query.equalTo("company", company);
  130. return query.first({ useMasterKey: true });
  131. }
  132. // /* 创建_Session并返回 */
  133. // import {pgClient} from "../../db/pg-instance";
  134. // async function setMobileSessionToken(user, reset) {
  135. // try {
  136. // // let Session = global.Parse.Object.extend('_Session');
  137. // if (user) {
  138. // //获取最后一次的token,如果过期时间大于未来2小时直接返回,若不是重置
  139. // let nowTime = new Date().getTime() + (1000 * 60 * 120)
  140. // let query = new Parse.Query('_Session')
  141. // query.equalTo('user', user.id)
  142. // query.descending('expiresAt')
  143. // query.greaterThan('expiresAt', new Date(nowTime))
  144. // query.select('expiresAt', 'sessionToken')
  145. // let reqSessionToken = await query.first({ useMasterKey: true })
  146. // if (reqSessionToken?.id && reqSessionToken.get('sessionToken')) {
  147. // return reqSessionToken
  148. // }
  149. // let username = user?.username || user?.get('username')
  150. // let sessionToken = "r:" + username + (new Date().getTime() / 1000).toFixed();
  151. // // 创建新Session登录系统
  152. // let Session = Parse.Object.extend('_Session');
  153. // let session = new Session()
  154. // let r = await session.save(null, {
  155. // useMasterKey: true
  156. // })
  157. // const objectId = r.id;
  158. // let now = new Date();
  159. // let expiresAt = (now.getFullYear() + 1) + '-' + (now.getMonth() + 1) + '-' + now.getDate() + ' 12:00:00'
  160. // console.log(expiresAt);
  161. // let sql = `INSERT INTO "_Session" ("objectId","user", "sessionToken", "expiresAt", "createdWith")
  162. // VALUES
  163. // ('${objectId}','${user.id}', '${sessionToken}','${expiresAt}','{"action": "login","authProvider": "appPassword"}')
  164. // ON CONFLICT("objectId") DO UPDATE
  165. // SET
  166. // "user" = excluded."user",
  167. // "sessionToken" = excluded."sessionToken",
  168. // "expiresAt"=excluded."expiresAt",
  169. // "createdWith"=excluded."createdWith"
  170. // `
  171. // const data = await pgClient().any(sql);
  172. // console.log('_Session', data)
  173. // let doneObj = {
  174. // get(field = 'sessionToken') {
  175. // if (field = 'sessionToken') return sessionToken
  176. // }
  177. // }
  178. // // let session = new Session();
  179. // // session.set("user", {
  180. // // __type: 'Pointer',
  181. // // className: '_User',
  182. // // objectId: user.id
  183. // // });
  184. // // session.set("sessionToken", sessionToken);
  185. // // let now = new Date();
  186. // // now.setFullYear(now.getFullYear() + 1);
  187. // // let expiresAt = now;
  188. // // session.set("expiresAt", expiresAt);
  189. // // session.set("createdWith", {
  190. // // "action": "login",
  191. // // "authProvider": "appPassword"
  192. // // })
  193. // // session.set("restricted", false)
  194. // // let doneObj = await session.save(null, {
  195. // // useMasterKey: true
  196. // // })
  197. // // if (!doneObj) {
  198. // // return false
  199. // // }
  200. // return doneObj
  201. // }
  202. // } catch (err) {
  203. // console.log(err)
  204. // return false
  205. // }
  206. // }
  207. // module.exports = router;
  208. // export const textbookRouter = router;