FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
SaaSPilot/middleware.ts at main · CiphersLab/SaaSPilot · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
CiphersLab
/
SaaSPilot
Public
Notifications
You must be signed in to change notification settings
Fork
3
Star
12
Code
Issues
0
Pull requests
0
Discussions
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
SaaSPilot
/
middleware.ts
Copy path
More file actions
More file actions
Latest commit
History
History
History
51 lines (40 loc) · 1.28 KB
Breadcrumbs
SaaSPilot
/
middleware.ts
Copy path
File metadata and controls
51 lines (40 loc) · 1.28 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import
NextAuth
from
"next-auth"
;
import
authConfig
from
"@/auth.config"
;
import
{
DEFAULT_LOGIN_REDIRECT_USER
,
apiAuthPrefix
,
authRoutes
,
publicRoutes
,
}
from
"@/routes"
;
const
{
auth
}
=
NextAuth
(
authConfig
)
;
export
default
auth
(
(
req
)
=>
{
const
{
nextUrl
}
=
req
;
const
isLoggedIn
=
!
!
req
.
auth
;
if
(
nextUrl
.
pathname
.
startsWith
(
'/api/'
)
)
{
return
null
;
// No need to do any authentication checks for API routes
}
const
isApiAuthRoute
=
nextUrl
.
pathname
.
startsWith
(
apiAuthPrefix
)
;
const
isPublicRoute
=
publicRoutes
.
includes
(
nextUrl
.
pathname
)
;
const
isAuthRoute
=
authRoutes
.
includes
(
nextUrl
.
pathname
)
;
if
(
isApiAuthRoute
)
return
null
;
if
(
isAuthRoute
)
{
if
(
isLoggedIn
)
{
return
Response
.
redirect
(
new
URL
(
DEFAULT_LOGIN_REDIRECT_USER
,
nextUrl
)
)
;
}
return
null
;
}
if
(
!
isLoggedIn
&&
!
isPublicRoute
)
{
let
callbackUrl
=
nextUrl
.
pathname
;
if
(
nextUrl
.
search
)
{
callbackUrl
+=
nextUrl
.
search
;
}
const
encodedCallbackUrl
=
encodeURIComponent
(
callbackUrl
)
;
return
Response
.
redirect
(
new
URL
(
`/auth/login?callbackUrl=
${
encodedCallbackUrl
}
`
,
nextUrl
)
)
;
}
}
)
;
// Optionally, don't invoke Middleware on some paths
export
const
config
=
{
matcher
:
[
"/((?!.+\\.[\\w]+$|_next).*)"
,
"/"
,
"/(api|trpc)(.*)"
]
,
}
;
Back
|
FazBrowse Home
|
New Git URL