# abstract class OAuth2::AccessToken

- OAuth2::AccessToken
- Reference
- Object

##
Overview

Base class for the two possible access tokens: Bearer and Mac.

Use `#authenticate` to authenticate an `HTTP::Client`.

##
Direct Known Subclasses

- OAuth2::AccessToken::Bearer
- OAuth2::AccessToken::Mac

##
Defined in:

oauth2/access_token/access_token.cr

##
Constructors

- .new(access_token : String, expires_in : Int | Nil, refresh_token : String | Nil = nil, scope : String | Nil = nil, extra : Nil | Hash(String, String) = nil)
- .new(pull : JSON::PullParser)

##
Instance Method Summary

- #access_token : String
- #access_token=(access_token : String)
- #authenticate(request : HTTP::Request, tls)
- #authenticate(client : HTTP::Client)
- #expires_in : Int64 | Nil
- #expires_in=(expires_in : Int64 | Nil)
- #extra : Hash(String, String) | Nil

  JSON key-value pairs that are outside of the OAuth2 spec are stored in this property in case they are needed.

- #extra=(extra : Hash(String, String) | Nil)

  JSON key-value pairs that are outside of the OAuth2 spec are stored in this property in case they are needed.

- #refresh_token : String | Nil
- #refresh_token=(refresh_token : String | Nil)
- #scope : String | Nil
- #scope=(scope : String | Nil)

### Instance methods inherited from class `Reference`

==(other : self)
==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?, to_s(io : IO) : Nil to_s

### Constructor methods inherited from class `Reference`

new new, unsafe_construct(address : Pointer, *args, **opts) : self unsafe_construct

### Class methods inherited from class `Reference`

pre_initialize(address : Pointer) pre_initialize

### Instance methods inherited from class `Object`

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

### Class methods inherited from class `Object`

from_json(string_or_io, root : String)
from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml

### Macros inherited from class `Object`

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

##
Constructor Detail

def self.new(access_token : String, expires_in : Int | Nil, refresh_token : String | Nil = nil, scope : String | Nil = nil, extra : Nil | Hash(String, String) = nil) #
def self.new(pull : JSON::PullParser) #

##
Instance Method Detail

def access_token : String #
def access_token=(access_token : String) #
abstract def authenticate(request : HTTP::Request, tls) #
def authenticate(client : HTTP::Client) #
def expires_in : Int64 | Nil #
def expires_in=(expires_in : Int64 | Nil) #
def extra : Hash(String, String) | Nil #

JSON key-value pairs that are outside of the OAuth2 spec are stored in this property in case they are needed. Their value is the raw JSON string found in the JSON value (with possible changes in the string format, but preserving JSON semantic). For example if the value was `[1, 2, 3]` then the value in this hash will be the string "[1,2,3]".

def extra=(extra : Hash(String, String) | Nil) #

JSON key-value pairs that are outside of the OAuth2 spec are stored in this property in case they are needed. Their value is the raw JSON string found in the JSON value (with possible changes in the string format, but preserving JSON semantic). For example if the value was `[1, 2, 3]` then the value in this hash will be the string "[1,2,3]".

def refresh_token : String | Nil #
def refresh_token=(refresh_token : String | Nil) #
def scope : String | Nil #
def scope=(scope : String | Nil) #