· 9 years ago · Sep 16, 2016, 06:34 PM
1oauth_authorize:
2 pattern: ^/oauth/v2/auth
3 # Add your favorite authentication process here
4
5firewalls:
6
7 oauth_token:
8 pattern: ^/oauth/v2/token
9 security: false
10
11 api_firewall:
12 pattern: ^/api/.*
13 fos_oauth: true
14 stateless: true
15 anonymous: false
16
17 secure_area:
18 pattern: ^/
19 fos_oauth: true
20 form_login:
21 provider: user_provider
22 check_path: /oauth/v2/auth_login_check
23 login_path: /oauth/v2/auth_login
24 logout:
25 path: /logout
26 target: /
27 anonymous: ~
28
29access_control:
30 - { path: ^/oauth/v2/auth_login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
31 - { path: ^/, roles: IS_AUTHENTICATED_FULLY }
32
33fos_oauth_server:
34 db_driver: orm
35 client_class: BBAuthBundleEntityClient
36 access_token_class: BBAuthBundleEntityAccessToken
37 refresh_token_class: BBAuthBundleEntityRefreshToken
38 auth_code_class: BBAuthBundleEntityAuthCode
39 service:
40 user_provider: platform.user.provider
41 options:
42 supported_scopes: user
43
44class RestRequest{
45 private $token_url;
46 private $access_token;
47 private $refresh_token;
48 private $client_id;
49 private $client_secret;
50
51 public function __construct(){
52 include 'config.php';
53 $this->client_id = $conf['client_id'];
54 $this->client_secret = $conf['client_secret'];
55 $this->token_url = $conf['token_url'];
56
57 $params = array(
58 'client_id'=>$this->client_id,
59 'client_secret'=>$this->client_secret,
60 'username'=>$conf['rest_user'],
61 'password'=>$conf['rest_pass'],
62 'grant_type'=>'password'
63 );
64
65 $result = $this->call($this->token_url, 'GET', $params);
66 $this->access_token = $result->access_token;
67 $this->refresh_token = $result->refresh_token;
68 }
69
70 public function getToken(){
71 return $this->access_token;
72 }
73
74 public function refreshToken(){
75 $params = array(
76 'client_id'=>$this->client_id,
77 'client_secret'=>$this->client_secret,
78 'refresh_token'=>$this->refresh_token,
79 'grant_type'=>'refresh_token'
80 );
81
82 $result = $this->call($this->token_url, "GET", $params);
83
84 $this->access_token = $result->access_token;
85 $this->refresh_token = $result->refresh_token;
86
87 return $this->access_token;
88 }
89
90 public function call($url, $method, $getParams = array(), $postParams = array()){
91 ob_start();
92 $curl_request = curl_init();
93
94 curl_setopt($curl_request, CURLOPT_HEADER, 0); // don't include the header info in the output
95 curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1); // don't display the output on the screen
96 $url = $url."?".http_build_query($getParams);
97 switch(strtoupper($method)){
98 case "POST": // Set the request options for POST requests (create)
99 curl_setopt($curl_request, CURLOPT_URL, $url); // request URL
100 curl_setopt($curl_request, CURLOPT_POST, 1); // set request type to POST
101 curl_setopt($curl_request, CURLOPT_POSTFIELDS, http_build_query($postParams)); // set request params
102 break;
103 case "GET": // Set the request options for GET requests (read)
104 curl_setopt($curl_request, CURLOPT_URL, $url); // request URL and params
105 break;
106 case "PUT": // Set the request options for PUT requests (update)
107 curl_setopt($curl_request, CURLOPT_URL, $url); // request URL
108 curl_setopt($curl_request, CURLOPT_CUSTOMREQUEST, "PUT"); // set request type
109 curl_setopt($curl_request, CURLOPT_POSTFIELDS, http_build_query($postParams)); // set request params
110 break;
111 case "DELETE":
112
113 break;
114 default:
115 curl_setopt($curl_request, CURLOPT_URL, $url);
116 break;
117 }
118
119 $result = curl_exec($curl_request); // execute the request
120 if($result === false){
121 $result = curl_error($curl_request);
122 }
123 curl_close($curl_request);
124 ob_end_flush();
125
126 return json_decode($result);
127 }
128}
129
130$request = new RestRequest();
131$insertUrl = "http://example.com/api/users";
132$postParams = array(
133 "username"=>"test",
134 "is_active"=>'false',
135 "other"=>"3g12g53g5gg4g246542g542g4"
136);
137$getParams = array("access_token"=>$request->getToken());
138$response = $request->call($insertUrl, "POST", $getParams, $postParams);