瀏覽代碼

fix: first signup password sync to authing

ryanemax 7 月之前
父節點
當前提交
72fe674bcd
共有 5 個文件被更改,包括 18 次插入6 次删除
  1. 1 1
      README.md
  2. 1 1
      docker-front
  3. 1 0
      server/cloud/authing/test/test-authing-org-sync.js
  4. 13 2
      server/cloud/authing/trigger-user-save.js
  5. 2 2
      server/server.js

+ 1 - 1
README.md

@@ -20,7 +20,7 @@ npm run start
 
 ``` bash
 npx vite build
-cp .\dist\server\server.js temp-server.js
+cp ./dist/server/server.js temp-server.js
 node temp-server.js --local
 ```
 

+ 1 - 1
docker-front

@@ -1 +1 @@
-Subproject commit 4ce99679dd15b479ee2c74abe019e8e3474bc558
+Subproject commit f2aa87dcdcbea31ac16b3a7e5a2aa858de9f5aff

+ 1 - 0
server/cloud/authing/test/test-authing-org-sync.js

@@ -12,4 +12,5 @@ main()
 /**
  * Cloud Code test
  curl -X POST -H "Content-Type: application/json" -H 'X-Parse-Application-Id: edu-textbook' http://8.140.98.43/parse/functions/authingDepartSync
+ curl -X POST -H "Content-Type: application/json" -H 'X-Parse-Application-Id: edu-textbook' http://127.0.0.1:61337/parse/functions/authingDepartSync
  */

+ 13 - 2
server/cloud/authing/trigger-user-save.js

@@ -10,28 +10,39 @@ const managementClient  = new ManagementClient({
 /**
  * 用户创建前,创建用户至Authing
  * @desc 仅同步注册信息及密码,资料在afterSave中同步
+ * @example
+ * 注册:
+ curl -X POST -H "Content-Type: application/json" -H "X-Parse-Application-Id: edu-textbook" -d '{
+  "username": "333",
+  "password": "333"
+ }' http://127.0.0.1:61337/parse/users
+ * 删除:
  */
 export function defineUserBeforeSave(){
     Parse.Cloud.beforeSave("_User", async (request) => {
+        // console.log("UserBeforeSave")
         request.object = appendUserACL(request.object)
         let user = request.object;
         // 仅首次注册/创建用户/修改密码有password属性,同步Authing账号
         let password = user?.get("password");
+        // console.log(password)
         if(password){
             let mobile = user?.get("mobile");
             let email = user?.get("email");
             let username = user?.get("username");
             let externalId = user?.id;
             let authingUserExists = await findUserByMobileEmailUserName(user)
+            // console.log(authingUserExists)
             if(authingUserExists?.statusCode==404){ // 创建用户
                 let newuser = {
                     status:"Activated",
+                    password:password,
                 }
                 if(mobile){newuser.phone = mobile}
                 if(email){newuser.email = email}
                 if(username){newuser.username = username}
                 if(externalId){newuser.externalId = externalId}
-
+                // console.log(newuser)
                 result = await managementClient.createUser(newuser)
             }
             if(authingUserExists?.statusCode==200){
@@ -72,7 +83,7 @@ function appendUserACL(user){
 /**
  * 用户删除前,删除用户从Authing
  */
- export function defineUserBeforeDelete(){
+ export function defineUserAfterDelete(){
     Parse.Cloud.afterDelete("_User", async (request) => {
         let user = request.object;
         // console.log(user.toJSON());

+ 2 - 2
server/server.js

@@ -44,7 +44,7 @@ global.config["LOCAL"] = argv.local || process.env["LOCAL"] || appConfig["LOCAL"
 
 import  {textbookRouter} from "./api/textbook/routes";
 import { defineAliOssSTS } from "./cloud/aliyun"
-import { defineAuthingLogin, defineUserBeforeDelete, defineUserBeforeSave } from "./cloud/authing"
+import { defineAuthingLogin, defineUserAfterDelete, defineUserBeforeSave } from "./cloud/authing"
 import { defineAuthingDepartSync } from "./cloud/authing"
 import { defineUserAfterSave } from "./cloud/authing"
 import { defineTbookISBN } from "./cloud/tbook"
@@ -184,7 +184,7 @@ async function initParseAndDatabase(){
       defineAliOssSTS();
       defineUserAfterSave();
       defineUserBeforeSave();
-      defineUserBeforeDelete();
+      defineUserAfterDelete();
       defineTbookISBN();
     });