Browse Source

feat: user module auth guard

RyaneMax 8 months ago
parent
commit
742cc557e6

+ 2 - 0
src/app/tabs/tabs-routing.module.ts

@@ -1,6 +1,7 @@
 import { NgModule } from '@angular/core';
 import { RouterModule, Routes } from '@angular/router';
 import { TabsPage } from './tabs.page';
+import { authGuard } from 'src/modules/user/auth.guard';
 
 const routes: Routes = [
   {
@@ -13,6 +14,7 @@ const routes: Routes = [
       },
       {
         path: 'tab2',
+        canActivate:[authGuard],
         loadChildren: () => import('../../modules/contact/contact-list/contact-list.module').then(mod => mod.ContactListPageModule)
       },
       {

+ 17 - 0
src/modules/user/auth.guard.spec.ts

@@ -0,0 +1,17 @@
+import { TestBed } from '@angular/core/testing';
+import { CanActivateFn } from '@angular/router';
+
+import { authGuard } from './auth.guard';
+
+describe('authGuard', () => {
+  const executeGuard: CanActivateFn = (...guardParameters) => 
+      TestBed.runInInjectionContext(() => authGuard(...guardParameters));
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({});
+  });
+
+  it('should be created', () => {
+    expect(executeGuard).toBeTruthy();
+  });
+});

+ 10 - 0
src/modules/user/auth.guard.ts

@@ -0,0 +1,10 @@
+import { CanActivateFn } from '@angular/router';
+import Parse from "parse";
+export const authGuard: CanActivateFn = (route, state) => {
+  let user = Parse.User.current()
+  if(user?.id){
+    return true
+  }else{
+    return false;
+  }
+};

+ 2 - 0
src/modules/user/edit-info/edit-info.page.ts

@@ -36,6 +36,8 @@ export class EditInfoPage implements OnInit {
     this.currentUser = Parse.User.current();
     if (this.currentUser) {
       console.log(this.userInfo)
+      this.userInfo.birthday = this.userInfo.birthday || new Date()
+      this.userInfo.birthday = new Date(this.userInfo.birthday);
       for (const key in this.userInfo) {
         if (this.userInfo.hasOwnProperty(key)) {
           this.currentUser.set(key, this.userInfo[key]);

+ 0 - 5
src/modules/user/login/login.page.html

@@ -5,11 +5,6 @@
 </ion-header>
 
 <ion-content [fullscreen]="true">
-  <ion-header collapse="condense">
-    <ion-toolbar>
-      <ion-title size="large">登录/注册</ion-title>
-    </ion-toolbar>
-  </ion-header>
 
   <ion-card>
     <ion-card-header>

+ 0 - 5
src/modules/user/mine/mine.page.html

@@ -5,11 +5,6 @@
 </ion-header>
 
 <ion-content [fullscreen]="true">
-  <ion-header collapse="condense">
-    <ion-toolbar>
-      <ion-title size="large">我的</ion-title>
-    </ion-toolbar>
-  </ion-header>
 
   <ion-card>
     <img alt="" src="https://ionicframework.com/docs/img/demos/card-media.png" />

+ 1 - 1
src/modules/user/mine/mine.page.ts

@@ -1,6 +1,6 @@
 import { Component, OnInit } from '@angular/core';
 // 由于Parse本身是js库,在ts中加载需要通过 * as Parse转换一下
-import * as Parse from "parse"
+import Parse from "parse"
 @Component({
   selector: 'app-mine',
   templateUrl: './mine.page.html',