文章内容
2019/8/12 15:07:25,作 者: 黄兵
Metronic v6.0.1 Angular 用户注册模块解析
在Metronic v6.0.1中,用户注册主要是在:src/app/core/auth/_services/auth.service.fake.ts这个模块中实现的。
下面我们看看如何实现的:
首先是定义了三个URI:
const API_USERS_URL = 'api/users'; const API_PERMISSION_URL = 'api/permissions'; const API_ROLES_URL = 'api/roles';
这三个URI在后面会被调用。
之后用户登陆调用部分:
// Authentication/Authorization login(email: string, password: string): Observable{ if (!email || !password) { return of(null); } return this.getAllUsers().pipe( map((result: User[]) => { if (result.length <= 0) { return null; } const user = find(result, function(item: User) { return (item.email.toLowerCase() === email.toLowerCase() && item.password === password); }); if (!user) { return null; } user.password = undefined; return user; }) ); }
最主要验证部分在这里:
const user = find(result, function(item: User) { return (item.email.toLowerCase() === email.toLowerCase() && item.password === password); });
用户名和密码转换成小写,判断是否相等。之后返回user相关数据。
getUserByToken(): Observable{ const userToken = localStorage.getItem(environment.authTokenKey); if (!userToken) { return of(null); } return this.getAllUsers().pipe( map((result: User[]) => { if (result.length <= 0) { return null; } const user = find(result, function(item: User) { return (item.accessToken === userToken.toString()); }); if (!user) { return null; } user.password = undefined; return user; }) ); }
这里根据Token判断用户。主要是读取localStorage的相关内容。
更多具体源代码,可以查看源文件。
评论列表