Toggle navigation
Toggle navigation
This project
Loading...
Sign in
developOne
/
harmonyPool
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
yangsunyue_wd
2024-04-08 17:26:53 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9351aced7dba0b2c8a783d9e8507d6b2c86df0c0
9351aced
1 parent
f89ff44a
desc:退出登录接口调试、RSA加密调试
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
118 additions
and
19 deletions
sight_harmony/commons/wdNetwork/src/main/ets/http/HttpUrlUtils.ets
sight_harmony/features/wdComponent/src/main/ets/components/setting/AccountAndSecurityLayout.ets
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginModel.ets
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginViewModel.ets
sight_harmony/features/wdLogin/src/main/ets/pages/login/SettingPasswordLayout.ets
sight_harmony/features/wdLogin/src/main/ets/utils/cryptoUtil.ets
sight_harmony/commons/wdNetwork/src/main/ets/http/HttpUrlUtils.ets
View file @
9351ace
...
...
@@ -382,7 +382,7 @@ export class HttpUrlUtils {
}
static getLogoutUrl() {
let url = HttpUrlUtils._hostUrl + "/api/rmrb-user-center/user/zh/c/
l
ogout";
let url = HttpUrlUtils._hostUrl + "/api/rmrb-user-center/user/zh/c/
appL
ogout";
return url;
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/setting/AccountAndSecurityLayout.ets
View file @
9351ace
...
...
@@ -12,6 +12,10 @@ import router from '@ohos.router';
import { WDRouterPage, WDRouterRule } from 'wdRouter';
import { Params } from 'wdBean';
import { SettingPasswordParams } from 'wdLogin';
import { LoginViewModel } from 'wdLogin/src/main/ets/pages/login/LoginViewModel';
import { Router } from '@ohos.arkui.UIContext';
import promptAction from '@ohos.promptAction';
export { SettingPasswordParams } from "wdLogin"
@Component
...
...
@@ -83,16 +87,21 @@ export struct AccountAndSecurityLayout {
Column() {
Button('退出登录',{ stateEffect: true ,type: ButtonType.Normal}).width('90%').height('80lpx').backgroundColor('#da3e22').fontColor('#fff').margin('20lpx').borderRadius('8lpx').onClick(()=>{
AlertDialog.show({
title: '🥟id : ' + "button",
message: '标题:' + '退出登录',
confirm: {
value: "OK",
action: () => {
},
}
})
let login = new LoginViewModel;
promptAction.showToast({ message: '退出登录' })
login.logOut();
router.back();
router.back();
// AlertDialog.show({
// title: '🥟id : ' + "button",
// message: '标题:' + '退出登录',
// confirm: {
// value: "OK",
// action: () => {
//
// },
// }
// })
})
}
...
...
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginModel.ets
View file @
9351ace
...
...
@@ -121,6 +121,7 @@ export class LoginModel {
bean['verifyCode'] = verifyCode
bean['phone'] = phone
let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders();
headers.set('cookie', '');
return new Promise<CheckVerifyBean>((success, fail) => {
HttpRequest.post<ResponseDTO<CheckVerifyBean>>(HttpUrlUtils.getCheckVerifyCodeUrl(), bean, headers).then((data: ResponseDTO<CheckVerifyBean>) => {
Logger.debug("LoginViewModel:success2 ", data.message)
...
...
@@ -230,7 +231,7 @@ export class LoginModel {
return new Promise<string>((success, fail) => {
HttpRequest.post<ResponseDTO<string>>(HttpUrlUtils.getLogoutUrl(), bean, headers).then((data: ResponseDTO<string>) => {
if (!data
|| !data.data
) {
if (!data) {
fail("数据为空")
return
}
...
...
@@ -238,7 +239,7 @@ export class LoginModel {
fail(data.message)
return
}
success(
data.data
)
success(
''
)
}, (error: Error) => {
fail(error.message)
Logger.debug("LoginViewModel:error ", error.toString())
...
...
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginViewModel.ets
View file @
9351ace
...
...
@@ -5,6 +5,8 @@ import { SPHelper } from 'wdKit'
import { CheckVerifyBean } from './CheckVerifyBean'
import cryptoFramework from '@ohos.security.cryptoFramework'
import buffer from '@ohos.buffer'
import { encryptMessage } from '../../utils/cryptoUtil'
import {
SpConstants
} from '../../../../../../../commons/wdNetwork/oh_modules/wdConstant/src/main/ets/constants/SpConstants'
...
...
@@ -119,7 +121,8 @@ export class LoginViewModel {
//重置密码 需要老密码
resetPassword(password: string, tempToken: string) {
return new Promise<string>(async (success, fail) => {
let passwordNew = await this.doMd(password)
let passwordNew = await encryptMessage(password);
this.loginModel.resetPassword(passwordNew, tempToken).then((data) => {
success(data)
}).catch((message: string) => {
...
...
@@ -132,7 +135,7 @@ export class LoginViewModel {
//忘记密码
forgotPassword(password: string, tempToken: string) {
return new Promise<string>(async (success, fail) => {
let passwordNew = await
this.doMd
(password)
let passwordNew = await
encryptMessage
(password)
this.loginModel.forgotPassword(passwordNew, tempToken).then((data) => {
success(data)
}).catch((message: string) => {
...
...
@@ -146,9 +149,18 @@ export class LoginViewModel {
return new Promise<string>(async (success, fail) => {
this.loginModel.logOut().then((data) => {
//清除登录状态以及token、userid等信息
HttpUrlUtils.setUserId('');
HttpUrlUtils.setUserType('');
HttpUrlUtils.setUserToken('');
SPHelper.default.save(SpConstants.USER_FIRST_MARK, '')
SPHelper.default.save(SpConstants.USER_ID, '')
SPHelper.default.save(SpConstants.USER_JWT_TOKEN, '')
SPHelper.default.save(SpConstants.USER_LONG_TIME_NO_LOGIN_MARK, '')
SPHelper.default.save(SpConstants.USER_REFRESH_TOKEN, '')
SPHelper.default.save(SpConstants.USER_STATUS, '')
SPHelper.default.save(SpConstants.USER_Type, '')
SPHelper.default.save(SpConstants.USER_NAME, '')
HttpUrlUtils.setUserId("")
HttpUrlUtils.setUserType("")
HttpUrlUtils.setUserToken('')
success(data)
}).catch((message: string) => {
fail(message)
...
...
sight_harmony/features/wdLogin/src/main/ets/pages/login/SettingPasswordLayout.ets
View file @
9351ace
...
...
@@ -188,7 +188,7 @@ export struct SettingPasswordLayout {
Row() {
TextInput({ placeholder: item.inputPlacholder })
.type(InputType.Password)
.showPasswordIcon(
fals
e)
.showPasswordIcon(
tru
e)
.backgroundColor('#00000000')
.onChange((value: string) => {
this.inputTextChange(value, item.inputTag)
...
...
sight_harmony/features/wdLogin/src/main/ets/utils/cryptoUtil.ets
0 → 100644
View file @
9351ace
import cryptoFramework from '@ohos.security.cryptoFramework';
import buffer from '@ohos.buffer';
import util from '@ohos.util';
// 加密消息
let pubKeyString = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI05e8RfyEnLW/Un629lVJoVHntIanEAETot5nRcLmPJpXbC5lf5UgvVrDPPmoTxc567Hg9qq3AyAqWrSyqI6MECAwEAAQ==';
async function encryptMessagePromise(publicKey: cryptoFramework.PubKey, plainText: cryptoFramework.DataBlob) {
let cipher = cryptoFramework.createCipher('RSA1024|PKCS1');
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, publicKey, null);
let encryptData = await cipher.doFinal(plainText);
return encryptData;
}
// 解密消息
async function decryptMessagePromise(privateKey: cryptoFramework.PriKey, cipherText: cryptoFramework.DataBlob) {
let decoder = cryptoFramework.createCipher('RSA1024|PKCS1');
await decoder.init(cryptoFramework.CryptoMode.DECRYPT_MODE, privateKey, null);
let decryptData = await decoder.doFinal(cipherText);
return decryptData;
}
// 生成RSA密钥对
async function genKeyPairByData() {
let base64 = new util.Base64Helper();
let pubKeyData = base64.decodeSync(pubKeyString);
let pkData = new Uint8Array(buffer.from(pubKeyString, 'utf-8').buffer)
let pubKeyBlob: cryptoFramework.DataBlob = { data: pubKeyData };
let pkData2 = new Uint8Array([48, 129, 159, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 129, 141, 0, 48, 129, 137, 2, 129, 129, 0, 197, 64, 10, 198, 14, 110, 65, 92, 206, 35, 28, 123, 153, 24, 134, 255, 145, 74, 42, 173, 40, 215, 146, 58, 143, 46, 10, 195, 154, 160, 69, 196, 220, 152, 179, 44, 111, 200, 84, 78, 215, 73, 210, 181, 12, 29, 70, 68, 36, 135, 153, 89, 230, 202, 130, 212, 111, 243, 234, 92, 131, 62, 145, 50, 73, 48, 104, 245, 46, 70, 45, 157, 147, 143, 140, 162, 156, 216, 220, 49, 121, 142, 194, 33, 223, 201, 0, 16, 163, 210, 240, 118, 92, 147, 121, 220, 17, 114, 24, 52, 125, 135, 176, 88, 21, 83, 86, 17, 156, 88, 250, 48, 79, 86, 128, 248, 105, 208, 133, 140, 13, 153, 164, 191, 136, 164, 44, 53, 2, 3, 1, 0, 1]);
let pubKeyBlob2: cryptoFramework.DataBlob = { data: pkData2 };
let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
rsaGenerator.convertKey(pubKeyBlob2, null, (err, keyPair) => {
if (err) {
console.error(`convertKey failed, ${err.code}, ${err.message}`);
}
console.info('convertKey success');
});
rsaGenerator.convertKey(pubKeyBlob, null, (err, keyPair) => {
if (err) {
console.error(`convertKey failed, ${err.code}, ${err.message}`);
}
console.info('convertKey success');
});
let keyPair = await rsaGenerator.convertKey(pubKeyBlob, null)
console.info('convertKey success');
return keyPair;
}
export async function encryptMessage(text:string) {
let keyPair = await genKeyPairByData();
let pubKey = keyPair.pubKey;
let priKey = keyPair.priKey;
let message = text;
// 把字符串按utf-8解码为Uint8Array
let plainText: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(message, 'utf-8').buffer) };
let encryptText = await encryptMessagePromise(pubKey, plainText);
//base 64加密
let base64 = new util.Base64Helper();
let result = base64.encodeToStringSync(encryptText.data);
return result;
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment