sys il y a 2 ans
Parent
commit
d1334e3866
5 fichiers modifiés avec 94 ajouts et 27 suppressions
  1. 1 0
      README.md
  2. 6 2
      pages/perfect/cards.vue
  3. 14 2
      pages/perfect/nickname.vue
  4. 19 0
      service/tools.js
  5. 54 23
      service/txOssSts.js

+ 1 - 0
README.md

@@ -1,5 +1,6 @@
 # 功能列表
 (优先做登录,首页,个人中心这三个部分,其余往后放)
+http://www.icoco.tech:9999/doc.html
 
 ## 1.登录&注册
 

+ 6 - 2
pages/perfect/cards.vue

@@ -71,7 +71,7 @@ import tools from "@/service/tools";
 import LoginAgreement from "@/pages/login/model/loginAgreement";
 import EnPopup from "@/components/en-utils/en-popup/en-popup";
 import {register} from "@/api/login";
-import txUploadFile from "@/service/txOssSts";
+import cosServe from "@/service/txOssSts";
 export default {
   components: {EnPopup, LoginAgreement, EnNav},
   data() {
@@ -100,12 +100,16 @@ export default {
             console.log(res.tempFiles)
             res.tempFiles.forEach((item,key)=>{
               console.log(item)
-              txUploadFile(item,'gallery').then((res)=>{
+              cosServe.txUploadFile(item,'gallery').then((res)=>{
                 console.log(res)
                 if(key===0){
                   this.imgBg=res.Location
+                  console.log('this.imgBg:'+this.imgBg)
+                  this.imgBg=cosServe.getSignUrl(this.imgBg)
+                  console.log(this.imgBg)
                 }
                 this.imgList.push(res.Location)
+                this.imgList.push(cosServe.getSignUrl(res.Location))
               })
             })
             console.log( this.imgList)

+ 14 - 2
pages/perfect/nickname.vue

@@ -34,6 +34,7 @@
 <script>
 import EnNav from "@/components/en-utils/en-nav/en-nav";
 import tools from "@/service/tools";
+import {register} from "@/api/login";
 export default {
   components: {EnNav},
   data() {
@@ -58,9 +59,20 @@ export default {
   methods: {
     setNextStep(){
       if(this.isOK){
-        uni.navigateTo({
-          'url':'/pages/perfect/cards'
+        let mobile=uni.getStorageSync('mobile')
+        let dateOfBirth=uni.getStorageSync('dateOfBirth')
+        let gender=uni.getStorageSync('gender')
+        register({'mobile':mobile,'dateOfBirth':dateOfBirth,'gender':gender,'nickname':this.nickname,'password':this.password}).then((res)=>{
+          if(res.code===0){
+            tools.setLoginData(res.data)
+            uni.navigateTo({
+              'url':'/pages/perfect/cards'
+            })
+          }else {
+            tools.error(res.msg)
+          }
         })
+
       }else {
         tools.error('请完善信息')
         this.isShakeBut=true

+ 19 - 0
service/tools.js

@@ -375,5 +375,24 @@ tools.setLoginData = function (data) {
 
 }
 
+tools.setCosToken=function (data){
+    uni.setStorageSync('cosToken',data)
+}
+tools.delCosToken=function (data){
+    uni.removeStorageSync('cosToken')
+}
+
+tools.getCosToken=function (){
+  let cosToken= uni.getStorageSync('cosToken')
+    if(!cosToken){
+        return undefined
+    }
+    let time=new Date().getTime()
+    if(cosToken.expiredTime && (cosToken.expiredTime*1000)-time >100000){
+        return  cosToken
+    }else {
+        return undefined
+    }
+}
 
 export default tools

+ 54 - 23
service/txOssSts.js

@@ -13,11 +13,11 @@
  * @return {string|boolean} 成功返回文件地址,失败返回false
  */
 import COS from "cos-js-sdk-v5"
-
-console.log(COS)
 import tools from "./tools";
 import {getTxySts} from "@/api/common";
 
+
+
 // 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
 let Bucket = 'icoco-1317650740';
 // 存储桶Region可以在COS控制台指定存储桶的概览页查看 https://console.cloud.tencent.com/cos5/bucket/
@@ -30,38 +30,48 @@ function startCos(){
     cos = new COS({
         getAuthorization: function (options, callback) {
             console.log('---------------获取初始化信息')
+            let  cosToken=tools.getCosToken()
+            if(cosToken){
+                callback({
+                    TmpSecretId: cosToken.credentials.tmpSecretId,
+                    TmpSecretKey: cosToken.credentials.tmpSecretKey,
+                    XCosSecurityToken: cosToken.credentials.sessionToken,
+                    StartTime: cosToken.startTime*1, // 时间戳,单位秒,如:1580000000,建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
+                    ExpiredTime: cosToken.expiredTime*1, // 时间戳,单位秒,如:1580000900
+                })
+            }else {
+                getTxySts().then((res)=>{
 
-            getTxySts().then((res)=>{
-                console.log({
-                    TmpSecretId: res.data.credentials.tmpSecretId,
-                    TmpSecretKey: res.data.credentials.tmpSecretKey,
-                    XCosSecurityToken: res.data.credentials.sessionToken,
-                    StartTime: res.data.startTime, // 时间戳,单位秒,如:1580000000,建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
-                    ExpiredTime: res.data.expiredTime, // 时间戳,单位秒,如:1580000900
+                    console.log('---------------获取初始化信息')
+                    if(res.code===0){
+                        tools.setCosToken(res.data)
+                        callback({
+                            TmpSecretId: res.data.credentials.tmpSecretId,
+                            TmpSecretKey: res.data.credentials.tmpSecretKey,
+                            XCosSecurityToken: res.data.credentials.sessionToken,
+                            StartTime: res.data.startTime*1, // 时间戳,单位秒,如:1580000000,建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
+                            ExpiredTime: res.data.expiredTime*1, // 时间戳,单位秒,如:1580000900
+                        })
+                        setTimeout(()=>{
+                            cos=null
+                            tools.delCosToken()
+                        },(res.data.expiredTime-res.data.startTime))
+                    }
                 })
-                console.log('---------------获取初始化信息')
-                if(res.code===0){
-                    callback({
-                        TmpSecretId: res.data.credentials.tmpSecretId,
-                        TmpSecretKey: res.data.credentials.tmpSecretKey,
-                        XCosSecurityToken: res.data.credentials.sessionToken,
-                        StartTime: res.data.startTime*1, // 时间戳,单位秒,如:1580000000,建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
-                        ExpiredTime: res.data.expiredTime*1, // 时间戳,单位秒,如:1580000900
-                    })
-                }
-            })
+            }
+
 
         }
     });
 }
-
+let cosServe={}
 /**
  * COS文件上传
  * @param file
  * @param folder 上传目录
  * @returns {Promise<unknown>}
  */
-function txUploadFile(file,folder){
+cosServe.txUploadFile=function (file,folder){
     if(cos===null){
         console.log('对象初始化')
         //初始化对象
@@ -103,5 +113,26 @@ function txUploadFile(file,folder){
 }
 
 
+cosServe.getSignUrl=function (url){
+    if(cos===null){
+        startCos();
+    }
+    console.log(url)
+    url= url.replace('https://','')
+    url= url.replace('http://','')
+    url= url.replace('icoco-1317650740.cos.ap-guangzhou.myqcloud.com','')
+    console.log(url)
+    console.log('开始签名----------------------------'+url)
+    let newUrl= cos.getObjectUrl({
+        Bucket: Bucket,
+        Region: Region,
+        Key: url, /* 存储在桶里的对象键(例如1.jpg,a/b/test.txt),支持中文,必须字段 */
+        Sign: true,
+    })
+    console.log('签名完成----------------------------'+newUrl)
+    console.log(newUrl)
+    return newUrl
+}
+
 
-export default txUploadFile
+export default cosServe