Intersect is a CROS proxy, fork and update from stamat/corsica. The CORSica is a very simple HTTP CORS proxy written in PHP using cURL.
- simple HTTP CORS proxy, support get/post/option/...
- support https for POST, with a common certificate data from Mozilla
- private client_secret option for Github api, or other client secret/token
- testcase for github oAuth
- some simple guards, please customize yourself
- content length recalculation
# clone project> git clone https://github.com/aimingoo/intersect >cd intersect # update these options> grep '^\$.* Option' intersect.php $SIMPLE_DEFAULT_HOME = 'Api bridge by aimingoo.'; // Option $DOMAIN_ACCEPT = 'aimingoo.github.io'; // Option - Your Github pages site $ROOT_CERT = __DIR__ ."/cacert.pem"; // Option - if you have these $PRIVATE_CLIENT_SECRET = 'xxxxxx...'; // Option - !MUST UPDATE!# check and(or) update your .htaccess> cat .htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ intersect.php [NC,L,QSA] # upload to your web site (with .htaccess)# - if .htaccess no accept, then rename intersect.php to default.php please# ...# DoneThe testcase for github oAuth only. please create a Github oAuth Application, and got client_id and client_secret from github settings.
now, update the client_secret in intersect.php, and change/pass the client_id at test/try.sh:
# update and(or) config test/headers.sh# - reset all headers for your web site# and, call try.sh>cdtest> bash try.sh 'http://your-site.github.io''your client_id' ...if run the try.sh,a browser will open, and you must login with github account, accept auth for your application, and browser redirect a new page (set 'Authorization callback URL' in your oAuth application in github settings) in the end.
you will get
code=xxxxxxxxxxxxxxxx
from the redirected page url query string/paraments, now copy the code string into shell console:
> bash try.sh 'http://your-site.github.io''your client_id' Try gateway: your-site.github.io with http -> Get code, open browser and pick the code from redirected url -> Input code: 8aacaebde14c80bf3e17 ## <-- COPY TO HERE and PRESS ENTERIf test success, you will get a response from github with access_token:
<- Return access_token: ========================== access_token=3054a20b15a5afed76d16d0ca3073df082cd2de2&scope=public_repo&token_type=bearer ========================== Done.- the proxy site need php with cURL support
- see gh-oauth-server project by imsun, if you have a server and nodejs supported
- dont include client_secert in frontend pages