1
1
package handlers
2
2
3
3
import (
4
+ "net/http"
4
5
"time"
5
6
7
+ "github.com/labstack/echo"
8
+
6
9
jwt "github.com/dgrijalva/jwt-go"
7
10
"github.com/gaia-pipeline/gaia"
8
- "github.com/kataras/iris"
9
11
)
10
12
11
13
// jwtExpiry defines how long the produced jwt tokens
@@ -19,26 +21,21 @@ type jwtCustomClaims struct {
19
21
20
22
// UserLogin authenticates the user with
21
23
// the given credentials.
22
- func UserLogin (ctx iris .Context ) {
24
+ func UserLogin (c echo .Context ) error {
23
25
u := & gaia.User {}
24
- if err := ctx .ReadJSON (u ); err != nil {
25
- ctx .StatusCode (iris .StatusBadRequest )
26
- ctx .WriteString (err .Error ())
26
+ if err := c .Bind (u ); err != nil {
27
27
gaia .Cfg .Logger .Debug ("error reading json during UserLogin" , "error" , err .Error ())
28
- return
28
+ return c . String ( http . StatusBadRequest , err . Error ())
29
29
}
30
30
31
31
// Authenticate user
32
32
user , err := storeService .UserAuth (u )
33
33
if err != nil {
34
34
gaia .Cfg .Logger .Error ("error during UserAuth" , "error" , err .Error ())
35
- ctx .StatusCode (iris .StatusInternalServerError )
36
- return
35
+ return c .String (http .StatusInternalServerError , err .Error ())
37
36
}
38
37
if user == nil {
39
- ctx .StatusCode (iris .StatusForbidden )
40
- ctx .WriteString ("invalid username and/or password" )
41
- return
38
+ return c .String (http .StatusForbidden , "invalid username and/or password" )
42
39
}
43
40
44
41
// Setup custom claims
@@ -57,13 +54,12 @@ func UserLogin(ctx iris.Context) {
57
54
// Sign and get encoded token
58
55
tokenstring , err := token .SignedString (jwtKey )
59
56
if err != nil {
60
- ctx .StatusCode (iris .StatusInternalServerError )
61
57
gaia .Cfg .Logger .Error ("error signing jwt token" , "error" , err .Error ())
62
- return
58
+ return c . String ( http . StatusInternalServerError , err . Error ())
63
59
}
64
60
user .JwtExpiry = claims .ExpiresAt
65
61
user .Tokenstring = tokenstring
66
62
67
63
// Return JWT token and display name
68
- ctx .JSON (user )
64
+ return c .JSON (http . StatusOK , user )
69
65
}
0 commit comments