This repository was archived by the owner on Apr 9, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.php
More file actions
111 lines (96 loc) · 2.25 KB
/
Copy pathserver.php
File metadata and controls
111 lines (96 loc) · 2.25 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Symfony\Component\HttpFoundation\Request;
$app = new Silex\Application();
/**
* checkAuth
*
* @param Request $request
* @return bool
*/
$checkAuth = function (Request $request) {
if (!$request->headers->has('x-api-token')) {
return false;
}
if (!$request->headers->get('x-api-token') === 'YOUR-SECRET-KEY') {
return false;
}
return true;
};
/**
* for check connection.
*/
$app->get('/', function () use ($app) {
return $app->json([]);
});
/**
* Auth
*/
$app->post('/auth', function (Request $request) use ($app) {
$data = json_decode($request->getContent(), true);
if ($data['name'] == 'shinichi' && $data['password'] == 'p@ssw0rd') {
return $app->json([
'auth' => [
'x-api-token' => 'YOUR-SECRET-TOKEN',
],
]);
}
return $app->abort(400, 'Authentication failed.');
});
/**
* Get an item.
*/
$app->get('/items/1', function (Request $request) use ($app, $checkAuth) {
if (!$checkAuth($request)) {
return $app->abort(400, 'Unauthorized.');
}
return $app->json([
'code' => 'MBA',
'name' => 'MacBook Air',
'size' => ['11-inch', '13-inch'],
]);
});
/**
* Get users.
*/
$app->get('/users', function (Request $request) use ($app, $checkAuth) {
if (!$checkAuth($request)) {
return $app->abort(400, 'Unauthorized.');
}
return $app->json([
[
'id' => 1,
'name' => 'Michel',
'age' => 18,
'hobby' => [
'music',
'play baseball'
],
'other' => [
'favorite hero' => 'spider man',
'girlfriend' => [
'Mary',
'Jane',
]
],
],
[
'id' => 2,
'name' => 'Bob',
'age' => 21,
'hobby' => [
'movie',
'running',
'take a picture',
'programming',
],
],
]);
});
/**
* Redirect to google.
*/
$app->get('/redirect', function () use ($app) {
return $app->redirect('https://google.com');
});
$app->run();