zoukankan      html  css  js  c++  java
  • Angular项目Auth Service

    ng g s services/auth

    1,领域对象中增加Auth对象。

    基于token的认证。

    import { User } from './user.model';
    import { Err } from './error.model';
    
    export interface Auth {
        user?: User;
        userId?: string;
        err?: string;
        token?: string;
    }

    2,注册

    返回Auth对象。

    如果用户已经存在就抛出错误。

    //注册
      register(user: User): Observable<Auth> {
        const uri = `${this.config.uri}/${this.domain}`;
        return this.httpClient
          .get(uri, { params: { 'email': user.email } })
          .pipe(
            switchMap(res => {
              if ((<User[]>res).length > 0) {
                return throwError('username existed');
              }
              return this.httpClient
                .post(uri, JSON.stringify(user), { headers: this.headers })
                .pipe(map(r => ({ token: this.token, user: <User>r })));
            })
          )
    
      }

     3,登录

    返回Auth对象。

      //登录
      login(username: string, password: string): Observable<Auth> {
        const uri = `${this.config.uri}/${this.domain}`;
        return this.httpClient.get(uri,
          { params: { 'email': username, 'password': password } }
        )
          .pipe(
            map(res => {
              const users = <User[]>res;
              if (users.length === 0) {
                throw new Error('Username or password incorrect');
              }
              return {
                token: this.token,
                user: users[0]
              }
            }))
      }

    如果觉得本文对您有帮助~可以支付宝(左)或微信支持一下:


    看到小伙伴打赏时给我写一些鼓励的话,真的非常感动,谢谢你们。


    我开了个微信公众号(第三个二维码)用来分享自己的职场英语相关学习经验,感兴趣可以关注,我会不断更新~


    微信打赏微信公众号

  • 相关阅读:
     随机选择数据库记录的方法
    交叉查询
    Delphi编辑器颜色设置
    Delphi Dll中多线程无法使用Synchronize同步的解决方法(转)
    Delphi FTP例子源码
    DELPHI之备忘四
    界面美化代码
    使Form响应滚轮事件
    配色卡
    Delphi http传输备忘
  • 原文地址:https://www.cnblogs.com/starof/p/14457615.html
Copyright © 2011-2022 走看看