登录加密,携带token,修改密码加密

本文介绍了一种基于JWT的登录流程,包括预处理、登录及密码修改功能。通过使用加密技术,确保了用户密码的安全性。文章详细展示了如何在登录过程中处理token,并提供了修改密码的方法。

一、登录token携带

   /**
     * 头部信息获取,主要用于处理token
     *  // attr1 attr2    obj.attr1=123
     * // attrX='attr1' obj[attrX]=123 <==> obj.attr1=123
     * // attrX='attr2' obj[attrX]=123 <==> obj.attr2=123
     */
    private getHeaders() {
        const headers = {
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': 'GET,POST,OPTIONS,DELETE,PUT',
            accept: 'application/json',
            publicKey: this.auth.publicKey,

        };
        /*当有jwtKeyValue的值时再执行*/
        if (this.auth.jwtKeyValue) {
            headers[this.auth.jwtKeyName] = this.auth.jwtKeyValue;
        }
        return new HttpHeaders(headers);
    }

二、登录

 /*登录预处理*/
    preLogin() {
        return this.dataService.prePost(`/json`)
            .pipe(map((data: TypeResult<Auth>) => {
                this.dataService.auth = data.data;
                this.userService.publickey = data.data.publicKey;
                return data.data;
            }));
    }
 /**
     *  登录页面  (加密code)
     */
    login(usercode, pwd) {
        this.preLogin().subscribe((d) => {
            this.data = d;
            if (!d) {
                return;
            }
            const pubKey = `-----BEGIN PUBLIC KEY-----\n${this.dataService.auth.publicKey}\n-----END PUBLIC KEY-----`;
            const encrypt = this.encryptService.getBase64Encrypted(pwd, pubKey);
            // 开始登陆
            this.dataService.postForm(`/test/login`, {usercode, pwd: encrypt})
                .subscribe((data: TypeResult<any>) => {
                    this.dataService.auth.jwtKeyValue = data.data[this.dataService.auth.jwtKeyName];
                    /* if (data.nu === true) {
                         this.modalService.alert('返回结果', '有新的版本是否需要更新!'
                             , [
                                 // {text: '取消', onPress: () => this.login$.next(data.data)},
                                 {text: '更新', onPress: () => this.updateApp()},
                             ]);
                         // this.updateApp();
                     } else {*/
                    this.login$.next(data.data);
                    // }
                });
        });

    }

三、 修改密码

 /*修改密码*/
    resetPassword(usercode, pwd, newPwd) {
        const pubKey = `-----BEGIN PUBLIC KEY-----\n${this.dataService.auth.publicKey}\n-----END PUBLIC KEY-----`;
        const pwdencrypt = this.encryptService.getBase64Encrypted(pwd, pubKey);
        const npwdencrypt = this.encryptService.getBase64Encrypted(newPwd, pubKey);
        return this.dataService.postForm(`/test/updatePwd`, {pwd: pwdencrypt, newPwd: npwdencrypt})
            .pipe(map(data => {
                console.log(data);
                return data
            }))
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Imency

我想喝瓶冰可落

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值