Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
myjob-manage
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
angular
myjob-manage
Commits
6a6af773
Commit
6a6af773
authored
Jun 27, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
superadmin
parent
ade9e5fa
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
29 additions
and
27 deletions
+29
-27
login.component.html
src/app/authentication/login/login.component.html
+2
-2
login.component.ts
src/app/authentication/login/login.component.ts
+3
-1
header.component.ts
src/app/shared/components/header/header.component.ts
+3
-3
auth.service.ts
src/app/shared/services/auth.service.ts
+1
-1
http-request.interceptor.ts
src/app/shared/services/http-request.interceptor.ts
+13
-13
token.service.ts
src/app/shared/services/token.service.ts
+2
-2
user-auth.model.ts
src/app/shared/user-auth.model.ts
+4
-4
environment.ts
src/environments/environment.ts
+1
-1
No files found.
src/app/authentication/login/login.component.html
View file @
6a6af773
...
...
@@ -16,8 +16,8 @@
<p
class=
"h5 font-semibold mb-2 text-center"
>
Sign In
</p>
<div
class=
"mt-3"
>
<form
[
formGroup
]="
loginForm
"
(
ngSubmit
)="
login
()"
id=
"segment-1"
class=
"hidden"
role=
"tabpanel"
<div
class=
"mt-3"
>
<form
[
formGroup
]="
loginForm
"
(
ngSubmit
)="
login
()"
id=
"segment-1"
class=
"hidden"
role=
"tabpanel"
aria-labelledby=
"segment-item-1"
>
<!-- <div class="form-group mt-2"> -->
@if(errorMessage.length > 0){
...
...
src/app/authentication/login/login.component.ts
View file @
6a6af773
...
...
@@ -120,9 +120,11 @@ export class LoginComponent {
body
.
username
=
this
.
username
;
body
.
password
=
this
.
password
;
this
.
authService
.
login
(
this
.
loginForm
.
controls
[
'username'
].
value
,
this
.
loginForm
.
controls
[
'password'
].
value
).
subscribe
(
result
=>
{
this
.
tokenService
.
saveToken
(
result
.
access_token
);
console
.
log
(
result
)
this
.
tokenService
.
saveToken
(
result
.
accessToken
);
// this.tokenService.saveRefreshToken(result.refreshToken);
this
.
tokenService
.
saveUser
(
result
);
this
.
routes
.
navigate
([
'/admin/member-manage'
])
// if (result.member.status == 1) {
// if (result.member.role == 99) {
// this.routes.navigate(['/admin/member-manage'])
...
...
src/app/shared/components/header/header.component.ts
View file @
6a6af773
...
...
@@ -18,8 +18,8 @@ interface Item {
})
export
class
HeaderComponent
{
userModel
:
UserProfileModel
=
new
UserProfileModel
(
this
.
tokenService
.
getUser
()
.
member
,
this
.
translate
)
adminRole
=
fals
e
userModel
:
UserProfileModel
=
new
UserProfileModel
(
this
.
tokenService
.
getUser
(),
this
.
translate
)
adminRole
=
tru
e
cartItemCount
:
number
=
5
;
notificationCount
:
number
=
5
;
public
isCollapsed
=
true
;
...
...
@@ -144,7 +144,7 @@ export class HeaderComponent {
public
text
!
:
string
;
public
SearchResultEmpty
:
boolean
=
false
;
ngOnInit
()
{
this
.
adminRole
=
t
his
.
tokenService
.
getUser
().
member
.
role
==
99
?
true
:
fals
e
this
.
adminRole
=
t
ru
e
console
.
log
(
"Admin"
,
this
.
adminRole
)
this
.
navServices
.
items
.
subscribe
((
menuItems
)
=>
{
this
.
items
=
menuItems
;
...
...
src/app/shared/services/auth.service.ts
View file @
6a6af773
...
...
@@ -5,7 +5,7 @@ import { ProfileModel, UserModel } from '../user-auth.model';
providedIn
:
'root'
,
})
export
class
AuthService
{
apiBaseUrl
=
"/auth"
;
apiBaseUrl
=
"/auth
/company
"
;
constructor
(
private
http
:
HttpClient
,
)
{
...
...
src/app/shared/services/http-request.interceptor.ts
View file @
6a6af773
...
...
@@ -23,22 +23,22 @@ export class HttpRequestInterceptor {
}
else
{
let
authReq
=
req
;
const
fullUrl
=
req
.
url
.
startsWith
(
"http"
)
?
req
.
url
:
environment
.
baseUrl
+
req
.
url
;
const
token
=
"Bearer "
+
this
.
tokenService
.
getToken
()
const
token
=
this
.
tokenService
.
getToken
()
?
"Bearer "
+
this
.
tokenService
.
getToken
()
:
null
console
.
log
(
fullUrl
)
if
(
token
!=
null
)
{
authReq
=
this
.
addTokenHeader
(
req
,
token
,
fullUrl
);
}
else
{
authReq
=
this
.
addTokenHeader
(
req
,
token
,
fullUrl
);
}
else
{
const
overideReq
=
{
url
:
fullUrl
,
};
authReq
=
req
.
clone
(
overideReq
);
}
console
.
log
(
"full url : "
,
fullUrl
)
console
.
log
(
"full url : "
,
fullUrl
)
return
next
.
handle
(
authReq
).
pipe
(
catchError
(
error
=>
{
console
.
log
(
"error"
,
error
)
console
.
log
(
"error"
,
error
)
if
(
error
instanceof
HttpErrorResponse
&&
error
.
status
===
403
&&
!
fullUrl
.
includes
(
"login"
))
{
console
.
log
(
"error"
,
403
)
return
this
.
handle403Error
(
authReq
,
next
,
fullUrl
);
console
.
log
(
"error"
,
403
)
return
this
.
handle403Error
(
authReq
,
next
,
fullUrl
);
}
return
throwError
(
error
);
}));
...
...
@@ -46,7 +46,7 @@ export class HttpRequestInterceptor {
}
private
handle403Error
(
request
:
HttpRequest
<
any
>
,
next
:
HttpHandler
,
fullUrl
:
string
)
{
private
handle403Error
(
request
:
HttpRequest
<
any
>
,
next
:
HttpHandler
,
fullUrl
:
string
)
{
if
(
!
this
.
isRefreshing
)
{
this
.
isRefreshing
=
true
;
this
.
refreshTokenSubject
.
next
(
null
);
...
...
@@ -54,7 +54,7 @@ export class HttpRequestInterceptor {
const
token
=
this
.
tokenService
.
getRefreshToken
();
if
(
token
)
return
this
.
authService
.
refreshToken
(
token
.
replace
(
"Bearer "
,
""
)).
pipe
(
return
this
.
authService
.
refreshToken
(
token
.
replace
(
"Bearer "
,
""
)).
pipe
(
switchMap
((
token
:
any
)
=>
{
this
.
isRefreshing
=
false
;
...
...
@@ -62,7 +62,7 @@ export class HttpRequestInterceptor {
this
.
tokenService
.
saveRefreshToken
(
token
.
refreshToken
);
this
.
refreshTokenSubject
.
next
(
token
.
accessToken
);
return
next
.
handle
(
this
.
addTokenHeader
(
request
,
token
.
accessToken
,
fullUrl
));
return
next
.
handle
(
this
.
addTokenHeader
(
request
,
token
.
accessToken
,
fullUrl
));
}),
catchError
((
err
)
=>
{
this
.
isRefreshing
=
false
;
...
...
@@ -76,17 +76,17 @@ export class HttpRequestInterceptor {
return
this
.
refreshTokenSubject
.
pipe
(
filter
(
token
=>
token
!==
null
),
take
(
1
),
switchMap
((
token
)
=>
next
.
handle
(
this
.
addTokenHeader
(
request
,
token
,
fullUrl
)))
switchMap
((
token
)
=>
next
.
handle
(
this
.
addTokenHeader
(
request
,
token
,
fullUrl
)))
);
}
private
addTokenHeader
(
request
:
HttpRequest
<
any
>
,
token
:
string
,
fullUrl
:
string
)
{
private
addTokenHeader
(
request
:
HttpRequest
<
any
>
,
token
:
string
,
fullUrl
:
string
)
{
/* for Spring Boot back-end */
// return request.clone({ headers: request.headers.set(TOKEN_HEADER_KEY, 'Bearer ' + token) });
/* for Node.js Express back-end */
return
request
.
clone
({
headers
:
request
.
headers
.
set
(
TOKEN_HEADER_KEY
,
token
)
,
url
:
fullUrl
});
return
request
.
clone
({
headers
:
request
.
headers
.
set
(
TOKEN_HEADER_KEY
,
token
)
,
url
:
fullUrl
});
}
}
src/app/shared/services/token.service.ts
View file @
6a6af773
...
...
@@ -30,8 +30,8 @@ export class TokenService {
window
.
localStorage
.
setItem
(
TOKEN_KEY
,
token
);
const
user
=
this
.
getUser
();
if
(
user
.
access
_t
oken
)
{
this
.
saveUser
({
...
user
,
access
_t
oken
:
token
});
if
(
user
.
access
T
oken
)
{
this
.
saveUser
({
...
user
,
access
T
oken
:
token
});
}
}
...
...
src/app/shared/user-auth.model.ts
View file @
6a6af773
...
...
@@ -4,14 +4,14 @@ import { UserProfileModel } from "../DPU/models/user.model";
export
class
LoginModel
{
public
username
:
string
=
""
;
public
password
:
string
=
""
;
public
email
:
string
=
""
;
}
export
class
UserModel
{
public
access_token
:
string
=
""
;
public
token_type
:
string
=
""
;
public
member
:
UserProfileModel
=
new
UserProfileModel
()
username
:
string
;
memberId
:
string
;
accessToken
:
string
;
refreshToken
:
string
;
}
export
interface
ProfileModel
{
...
...
src/environments/environment.ts
View file @
6a6af773
...
...
@@ -3,7 +3,7 @@
// The list of file replacements can be found in `angular.json`.
export
const
environment
=
{
production
:
true
,
baseUrl
:
'http://
localhost:800
0'
,
baseUrl
:
'http://
192.168.10.85:809
0'
,
firebase
:
{
apiKey
:
"***************************************"
,
authDomain
:
"************************"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment