The ciao Reference Manual

This is the ciao Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 14:54:52 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 ciao

OAuth 2.0 Client for Common Lisp

Author

Jin-Ho King <>

License

LGPLv3

Version

0.0.1

Dependencies
  • hunchentoot (system).
  • dexador (system).
  • cl-json (system).
  • trivial-open-browser (system).
Source

ciao.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 ciao/src

Source

ciao.asd.

Parent Component

ciao (system).

Child Component

ciao.lisp (file).


4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 ciao/ciao.asd

Source

ciao.asd.

Parent Component

ciao (system).

ASDF Systems

ciao.


4.1.2 ciao/src/ciao.lisp

Source

ciao.asd.

Parent Component

src (module).

Packages

ciao.

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 ciao

Source

ciao.lisp.

Use List

common-lisp.

Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *clio-auth-server*

An instance of an oauth2-auth-server object with information relevant to access Clio services

Package

ciao.

Source

ciao.lisp.

Special Variable: *google-auth-server*

An instance of an oauth2-auth-server object with information relevant to access Google services.

Package

ciao.

Source

ciao.lisp.

Special Variable: *oob-uri*

From Google: "This value indicates that Google’s authorization server should return the authorization code in the browser’s title bar. This option is useful if the client cannot listen on an HTTP port without significant modifications to the client."

Package

ciao.

Source

ciao.lisp.


6.1.2 Ordinary functions

Function: get-access-token (oauth &key re-acquire? who)

Returns the access-token for an oauth2 object

Package

ciao.

Source

ciao.lisp.

Function: get-auth-request-url (auth-server &key client scopes redirect-uri state extra-parameters)

Returns the QURI:URI to obtain the authentication code.

Package

ciao.

Source

ciao.lisp.

Function: headers (oauth)

Returns the authorization headers

Package

ciao.

Source

ciao.lisp.

Function: oauth2/auth-code (auth-server client auth-code &key redirect-uri)

Returns an oauth2 object using the given auth-code to request an access token. The redirect-uri must match the auth-code redirect-uri.

Package

ciao.

Source

ciao.lisp.

Function: oauth2/refresh-token (auth-server client refresh-token)

Returns an oauth2 object using the given refresh-token to acquire a new access token.

Package

ciao.

Source

ciao.lisp.

Function: oauth2/request-auth-code/browser (auth-server client &key scopes port)

Given an auth-server definition (e.g., *google-auth-server*), an auth-client object, and a list of strings defining the scope, initiates the authentication process.

Package

ciao.

Source

ciao.lisp.


6.1.3 Generic functions

Generic Reader: get-refresh-token (object)
Package

ciao.

Methods
Reader Method: get-refresh-token ((oauth2 oauth2))

automatically generated reader method

Source

ciao.lisp.

Target Slot

refresh-token.


6.1.4 Classes

Class: oauth2
Package

ciao.

Source

ciao.lisp.

Direct methods
Direct slots
Slot: client
Initargs

:client

Readers

get-client.

Writers

This slot is read-only.

Slot: auth-server
Initargs

:auth-server

Readers

get-auth-server.

Writers

This slot is read-only.

Slot: scopes
Initargs

:scopes

Readers

get-scopes.

Writers

This slot is read-only.

Slot: token-type
Initargs

:token-type

Readers

get-token-type.

Writers

This slot is read-only.

Slot: access-token
Initargs

:scopes

Slot: refresh-token
Initargs

:refresh-token

Readers

get-refresh-token.

Writers

This slot is read-only.

Slot: expiration
Initform

(quote ciao::inf+)

Initargs

ciao::expiration

Readers

get-expiration.

Writers

This slot is read-only.

Class: oauth2-auth-server
Package

ciao.

Source

ciao.lisp.

Direct methods
Direct slots
Slot: auth-url
Initargs

:auth-url

Readers

get-auth-url.

Writers

This slot is read-only.

Slot: token-url
Initargs

:token-url

Readers

get-token-url.

Writers

This slot is read-only.

Slot: tokeninfo-url
Initargs

:tokeninfo-url

Readers

get-tokeninfo-url.

Writers

This slot is read-only.

Slot: revoke-url
Initargs

:revoke-url

Readers

revoke-url.

Writers

This slot is read-only.

Class: oauth2-client
Package

ciao.

Source

ciao.lisp.

Direct methods
Direct slots
Slot: id
Initargs

:id

Readers

get-id.

Writers

This slot is read-only.

Slot: secret
Initargs

:secret

Readers

get-secret.

Writers

This slot is read-only.


6.2 Internals


6.2.1 Ordinary functions

Function: acquire-token/auth-code! (oauth auth-code &key redirect-uri who)

Updates the oauth2 object with a token using the auth-code

Package

ciao.

Source

ciao.lisp.

Function: acquire-token/auth-code/json (oauth &key auth-code redirect-uri)

Using the given auth-code, pull the result from the oauth2-server

Package

ciao.

Source

ciao.lisp.

Function: body/acquire-token (oauth &key auth-code redirect-uri)

helper function to generate the acquire-token request

Package

ciao.

Source

ciao.lisp.

Function: body/refresh-token (oauth)

helper function to generate the refresh-token request

Package

ciao.

Source

ciao.lisp.

Function: form-headers ()
Package

ciao.

Source

ciao.lisp.

Function: get-client-id (oauth)

Returns the client-id for an oauth2 object

Package

ciao.

Source

ciao.lisp.

Function: re-acquire-token! (oauth &key who)

Refreshes the token for the oauth2 object

Package

ciao.

Source

ciao.lisp.

Function: refresh-token! (oauth &key who)

Updates the oauth2 object with a refreshed token

Package

ciao.

Source

ciao.lisp.

Function: refresh-token/json (oauth)

Calls the server for an updated refresh-token info

Package

ciao.

Source

ciao.lisp.

Function: reset-from-json! (oauth who now json-string)

Tool to update the oauth2 object

Package

ciao.

Source

ciao.lisp.

Function: servlet (&key port)

Start a blocking servlet that waits for code and state.

Package

ciao.

Source

ciao.lisp.

Function: string-split (substr mainstr)

Returns a list of strings that constitute mainstr split wherever substr occurs

Package

ciao.

Source

ciao.lisp.


6.2.2 Generic functions

Generic Reader: get-auth-server (object)
Package

ciao.

Methods
Reader Method: get-auth-server ((oauth2 oauth2))

automatically generated reader method

Source

ciao.lisp.

Target Slot

auth-server.

Generic Reader: get-auth-url (object)
Package

ciao.

Methods
Reader Method: get-auth-url ((oauth2-auth-server oauth2-auth-server))

automatically generated reader method

Source

ciao.lisp.

Target Slot

auth-url.

Generic Reader: get-client (object)
Package

ciao.

Methods
Reader Method: get-client ((oauth2 oauth2))

automatically generated reader method

Source

ciao.lisp.

Target Slot

client.

Generic Reader: get-expiration (object)
Package

ciao.

Methods
Reader Method: get-expiration ((oauth2 oauth2))

automatically generated reader method

Source

ciao.lisp.

Target Slot

expiration.

Generic Reader: get-id (object)
Package

ciao.

Methods
Reader Method: get-id ((oauth2-client oauth2-client))

automatically generated reader method

Source

ciao.lisp.

Target Slot

id.

Generic Reader: get-scopes (object)
Package

ciao.

Methods
Reader Method: get-scopes ((oauth2 oauth2))

automatically generated reader method

Source

ciao.lisp.

Target Slot

scopes.

Generic Reader: get-secret (object)
Package

ciao.

Methods
Reader Method: get-secret ((oauth2-client oauth2-client))

automatically generated reader method

Source

ciao.lisp.

Target Slot

secret.

Generic Reader: get-token-type (object)
Package

ciao.

Methods
Reader Method: get-token-type ((oauth2 oauth2))

automatically generated reader method

Source

ciao.lisp.

Target Slot

token-type.

Generic Reader: get-token-url (object)
Package

ciao.

Methods
Reader Method: get-token-url ((oauth2-auth-server oauth2-auth-server))

automatically generated reader method

Source

ciao.lisp.

Target Slot

token-url.

Generic Reader: get-tokeninfo-url (object)
Package

ciao.

Methods
Reader Method: get-tokeninfo-url ((oauth2-auth-server oauth2-auth-server))

automatically generated reader method

Source

ciao.lisp.

Target Slot

tokeninfo-url.

Generic Reader: revoke-url (object)
Package

ciao.

Methods
Reader Method: revoke-url ((oauth2-auth-server oauth2-auth-server))

automatically generated reader method

Source

ciao.lisp.

Target Slot

revoke-url.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   A   B   F   G   H   M   O   R   S  
Index Entry  Section

A
acquire-token/auth-code!: Private ordinary functions
acquire-token/auth-code/json: Private ordinary functions

B
body/acquire-token: Private ordinary functions
body/refresh-token: Private ordinary functions

F
form-headers: Private ordinary functions
Function, acquire-token/auth-code!: Private ordinary functions
Function, acquire-token/auth-code/json: Private ordinary functions
Function, body/acquire-token: Private ordinary functions
Function, body/refresh-token: Private ordinary functions
Function, form-headers: Private ordinary functions
Function, get-access-token: Public ordinary functions
Function, get-auth-request-url: Public ordinary functions
Function, get-client-id: Private ordinary functions
Function, headers: Public ordinary functions
Function, oauth2/auth-code: Public ordinary functions
Function, oauth2/refresh-token: Public ordinary functions
Function, oauth2/request-auth-code/browser: Public ordinary functions
Function, re-acquire-token!: Private ordinary functions
Function, refresh-token!: Private ordinary functions
Function, refresh-token/json: Private ordinary functions
Function, reset-from-json!: Private ordinary functions
Function, servlet: Private ordinary functions
Function, string-split: Private ordinary functions

G
Generic Function, get-auth-server: Private generic functions
Generic Function, get-auth-url: Private generic functions
Generic Function, get-client: Private generic functions
Generic Function, get-expiration: Private generic functions
Generic Function, get-id: Private generic functions
Generic Function, get-refresh-token: Public generic functions
Generic Function, get-scopes: Private generic functions
Generic Function, get-secret: Private generic functions
Generic Function, get-token-type: Private generic functions
Generic Function, get-token-url: Private generic functions
Generic Function, get-tokeninfo-url: Private generic functions
Generic Function, revoke-url: Private generic functions
get-access-token: Public ordinary functions
get-auth-request-url: Public ordinary functions
get-auth-server: Private generic functions
get-auth-server: Private generic functions
get-auth-url: Private generic functions
get-auth-url: Private generic functions
get-client: Private generic functions
get-client: Private generic functions
get-client-id: Private ordinary functions
get-expiration: Private generic functions
get-expiration: Private generic functions
get-id: Private generic functions
get-id: Private generic functions
get-refresh-token: Public generic functions
get-refresh-token: Public generic functions
get-scopes: Private generic functions
get-scopes: Private generic functions
get-secret: Private generic functions
get-secret: Private generic functions
get-token-type: Private generic functions
get-token-type: Private generic functions
get-token-url: Private generic functions
get-token-url: Private generic functions
get-tokeninfo-url: Private generic functions
get-tokeninfo-url: Private generic functions

H
headers: Public ordinary functions

M
Method, get-auth-server: Private generic functions
Method, get-auth-url: Private generic functions
Method, get-client: Private generic functions
Method, get-expiration: Private generic functions
Method, get-id: Private generic functions
Method, get-refresh-token: Public generic functions
Method, get-scopes: Private generic functions
Method, get-secret: Private generic functions
Method, get-token-type: Private generic functions
Method, get-token-url: Private generic functions
Method, get-tokeninfo-url: Private generic functions
Method, revoke-url: Private generic functions

O
oauth2/auth-code: Public ordinary functions
oauth2/refresh-token: Public ordinary functions
oauth2/request-auth-code/browser: Public ordinary functions

R
re-acquire-token!: Private ordinary functions
refresh-token!: Private ordinary functions
refresh-token/json: Private ordinary functions
reset-from-json!: Private ordinary functions
revoke-url: Private generic functions
revoke-url: Private generic functions

S
servlet: Private ordinary functions
string-split: Private ordinary functions