4
4
5
5
use Level51 \JWTUtils \JWTUtils ;
6
6
use Level51 \JWTUtils \JWTUtilsException ;
7
+ use SilverStripe \Security \Member ;
8
+ use SilverStripe \Security \Security ;
7
9
8
10
class AuthController extends ApiController
9
11
{
@@ -12,31 +14,45 @@ class AuthController extends ApiController
12
14
'verify ' ,
13
15
];
14
16
15
- private static $ test = '123 ' ;
16
-
17
17
/**
18
18
* The token is acquired by using basic auth. Once the user has entered the
19
19
* username / password and completed this first step then we give them back
20
20
* a token which contains their information
21
21
*/
22
22
public function token () {
23
23
try {
24
- $ payload = JWTUtils::inst ()->byBasicAuth ($ this ->request );
24
+ $ payload = JWTUtils::inst ()->byBasicAuth ($ this ->request , true );
25
+
26
+ if (isset ($ payload ['member ' ]['id ' ])) {
27
+ $ member = Member::get ()->byID ($ payload ['member ' ]['id ' ]);
28
+
29
+ if ($ member ) {
30
+ $ payload ['member ' ] = array_merge ($ payload ['member ' ], $ member ->toApi ());
31
+ }
32
+
33
+ return $ this ->returnArray ($ payload );
34
+ }
25
35
26
36
return $ this ->returnArray ($ payload );
27
37
} catch (JWTUtilsException $ e ) {
28
38
return $ this ->httpError (403 , $ e ->getMessage ());
29
39
}
30
40
}
31
41
42
+
32
43
/**
33
44
* Verifies a token is valid
34
45
*/
35
46
public function verify ()
36
47
{
37
48
if ($ jwt = $ this ->getJwt ()) {
49
+ $ member = Security::getCurrentUser ();
50
+
38
51
return $ this ->returnArray (
39
- ['token ' => $ jwt ]
52
+ [
53
+ 'token ' => $ jwt ,
54
+ 'member ' => $ member ->toApi (),
55
+ ]
40
56
);
41
57
}
42
58
}
0 commit comments