Skip to content

Commit b4404da

Browse files
authored
Add status code and request ID to JWT auth errors (#132)
1 parent 4fe7a43 commit b4404da

File tree

5 files changed

+28
-3
lines changed

5 files changed

+28
-3
lines changed

stytch/src/main/kotlin/com/stytch/java/b2b/api/sessions/Sessions.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -768,6 +768,7 @@ internal class SessionsImpl(
768768
else ->
769769
when (val netResult = authenticate(AuthenticateRequest(sessionJwt = jwt, authorizationCheck = authorizationCheck))) {
770770
is StytchResult.Success -> StytchResult.Success(netResult.value.memberSession)
771+
is StytchResult.Error -> netResult
771772
else -> StytchResult.Success(null)
772773
}
773774
}

stytch/src/main/kotlin/com/stytch/java/common/JWTResponse.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,11 @@ public object JWTNullResponse : JWTResponse
1010
public data class JWTSessionResponse(val response: Session?) : JWTResponse
1111

1212
public data class JWTAuthResponse(val response: AuthenticateResponse) : JWTResponse
13+
14+
public data class JWTErrorResponse(
15+
val statusCode: Int,
16+
val requestId: String?,
17+
val errorType: String,
18+
val errorMessage: String,
19+
val errorUrl: String,
20+
) : JWTResponse
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package com.stytch.java.common
22

3-
internal const val VERSION = "7.34.0"
3+
internal const val VERSION = "8.0.0"

stytch/src/main/kotlin/com/stytch/java/consumer/api/sessions/Sessions.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.squareup.moshi.Moshi
1111
import com.squareup.moshi.Types
1212
import com.stytch.java.common.InstantAdapter
1313
import com.stytch.java.common.JWTAuthResponse
14+
import com.stytch.java.common.JWTErrorResponse
1415
import com.stytch.java.common.JWTException
1516
import com.stytch.java.common.JWTNullResponse
1617
import com.stytch.java.common.JWTResponse
@@ -580,7 +581,22 @@ internal class SessionsImpl(
580581
else ->
581582
when (val netResult = authenticate(AuthenticateRequest(sessionJwt = jwt))) {
582583
is StytchResult.Success -> StytchResult.Success(JWTAuthResponse(netResult.value))
583-
else -> StytchResult.Success(JWTNullResponse)
584+
is StytchResult.Error ->
585+
when (val exception = netResult.exception) {
586+
is StytchException.Response -> {
587+
val errorResponse = exception.reason
588+
StytchResult.Success(
589+
JWTErrorResponse(
590+
statusCode = errorResponse.statusCode,
591+
requestId = errorResponse.requestId,
592+
errorType = errorResponse.errorType,
593+
errorMessage = errorResponse.errorMessage,
594+
errorUrl = errorResponse.errorUrl,
595+
),
596+
)
597+
}
598+
else -> StytchResult.Success(JWTNullResponse)
599+
}
584600
}
585601
}
586602
}

version.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = "7.34.0"
1+
version = "8.0.0"

0 commit comments

Comments
 (0)