converted remaining security drivers

This commit is contained in:
Anton Dyudin 2016-04-07 18:39:48 -07:00
parent 3feb7f453e
commit 0e6020a418
3 changed files with 68 additions and 46 deletions

View File

@ -1,25 +1,27 @@
:: Test url +https://api.dropboxapi.com/2/files/list_folder
:: Test url +https://api.dropboxapi.com/2/users/get_current_account &json ~
::
:::: /hoon/dropboxapi/com/sec
::
/+ oauth2
::
::::
::
=+ ^= aut
%+ oauth2
'https://www.dropbox.com/1/oauth2/authorize?response_type=code'
'https://api.dropboxapi.com/1/oauth2/token'
|_ {(bale keys:oauth2) tok/token.aut}
++ aut ~(. ^aut +<- /)
++ out
|= a/hiss
=; mow ~& db-authorized+mow mow
%. a
(out-math:aut tok)
++ in in-code:aut
++ bak (bak-save-access:aut . |=(tok/token:aut +>(tok tok)))
|%
++ dialog-url 'https://www.dropbox.com/1/oauth2/authorize?response_type=code'
++ exchange-url 'https://api.dropboxapi.com/1/oauth2/token'
--
::
::::
::
|_ {bal/(bale keys:oauth2) tok/token:oauth2}
:: aut is a "standard oauth2" core, which implements the
:: most common handling of oauth2 semantics. see lib/oauth2 for more details.
++ aut (~(standard oauth2 bal tok) . |=(tok/token:oauth2 +>(tok tok)))
++ out (out-add-header:aut scope=~ dialog-url)
::
++ in (in-code-to-token:aut exchange-url)
++ bak bak-save-token:aut
--
:: create a developer app on https://www.instagram.com/developer/ to get a
:: client id and secret.

View File

@ -6,21 +6,36 @@
::
::::
::
=+ ^= aut
%+ oauth2
dialog='https://www.facebook.com/dialog/oauth?response_type=code'
exchange='https://graph.facebook.com/v2.3/oauth/access_token'
|_ {bal/(bale keys.aut) access-token/token.aut}
++ auth ~(. aut bal /'user_about_me'/'user_posts')
++ out (out-quay:auth key='access_token' value=access-token)
++ in in-code:auth
++ bak
%- (bak-parse:auth . access-token.aut expires-in.aut ~)
|= {access-token/@t expires-in/@u}
?: (lth expires-in ^~((div ~d7 ~s1))) :: short-lived token
%^ toke-req:auth grant-type='fb_exchange_token'
[key='fb_exchange_token' value=access-token]
~
[[%redo ~] ..bak(access-token access-token)]
::++ wyp ~
|%
++ dialog-url 'https://www.facebook.com/dialog/oauth?response_type=code'
++ exchange-url 'https://graph.facebook.com/v2.3/oauth/access_token'
--
::
::::
::
|_ {bal/(bale keys:oauth2) access-token/token:oauth2}
:: aut is a "standard oauth2" core, which implements the
:: most common handling of oauth2 semantics. see lib/oauth2 for more details.
++ aut
%+ ~(standard oauth2 bal access-token) .
|=(access-token/token:oauth2 +>(access-token access-token))
::
++ out
%^ out-add-query-param:aut 'access_token'
scope=~['user_about_me' 'user_posts']
dialog-url
::
++ in (in-code-to-token:aut exchange-url)
::
++ bak
|= a/httr ^- core-move:aut
?: (bad-response:aut p.a)
[%give a] :: [%redo ~] :: handle 4xx?
=+ `{access-token/@t expires-in/@u}`(grab-expiring-token:aut a)
?. (lth expires-in ^~((div ~d7 ~s1))) :: short-lived token
[[%redo ~] ..bak(access-token access-token)]
:- %send
%^ token-request:aut exchange-url
grant-type='fb_exchange_token'
[key='fb_exchange_token' value=access-token]~
--

View File

@ -1,3 +1,4 @@
:: Test url +https://api.instagram.com/v1/users/self
::
:::: /hoon/instagram/com/sec
::
@ -5,21 +6,25 @@
::
::::
::
=+ ^= aut
%+ oauth2
'https://api.instagram.com/oauth/authorize?response_type=code'
'https://api.instagram.com/oauth/access_token'
|_ {(bale keys:oauth2) tok/token.aut}
++ aut ~(. ^aut +<- /basic)
++ out
|= a/hiss
=; mow ~& db-authorized+mow mow
%. a
(out-quay:aut 'access_token'^tok)
++ in in-code:aut
++ bak (bak-save-access:aut . |=(tok/token:aut +>(tok tok)))
|%
++ dialog-url 'https://api.instagram.com/oauth/authorize?response_type=code'
++ exchange-url 'https://api.instagram.com/oauth/access_token'
--
::
::::
::
|_ {bal/(bale keys:oauth2) tok/token:oauth2}
:: aut is a "standard oauth2" core, which implements the
:: most common handling of oauth2 semantics. see lib/oauth2 for more details.
++ aut (~(standard oauth2 bal tok) . |=(tok/token:oauth2 +>(tok tok)))
++ out
%^ out-add-query-param:aut 'access_token'
scope=~[%basic]
dialog-url
::
++ in (in-code-to-token:aut exchange-url)
++ bak bak-save-token:aut
--
:: create a developer app on https://www.instagram.com/developer/ to get a
:: client id and secret