Github OAuth login handler.

See https://developer.github.com/v3/oauth/.

Introduced properties

fun allow_signup: Bool

popcorn :: GithubLogin :: allow_signup

Allow signup at login.
fun allow_signup=(allow_signup: Bool)

popcorn :: GithubLogin :: allow_signup=

Allow signup at login.
fun auth_url: String

popcorn :: GithubLogin :: auth_url

Github OAuth login URL.
fun auth_url=(auth_url: String)

popcorn :: GithubLogin :: auth_url=

Github OAuth login URL.
fun build_auth_redirect: String

popcorn :: GithubLogin :: build_auth_redirect

Build Github URL to OAuth service.
fun client_id: String

popcorn :: GithubLogin :: client_id

Client ID delivered by GitHub for your application.
fun client_id=(client_id: String)

popcorn :: GithubLogin :: client_id=

Client ID delivered by GitHub for your application.
fun redirect_uri: nullable String

popcorn :: GithubLogin :: redirect_uri

The URL in your application where users will be sent after authorization.
fun redirect_uri=(redirect_uri: nullable String)

popcorn :: GithubLogin :: redirect_uri=

The URL in your application where users will be sent after authorization.
fun scope: nullable String

popcorn :: GithubLogin :: scope

A space delimited list of scopes.
fun scope=(scope: nullable String)

popcorn :: GithubLogin :: scope=

A space delimited list of scopes.
fun state: nullable String

popcorn :: GithubLogin :: state

An optional and unguessable random string.
fun state=(state: nullable String)

popcorn :: GithubLogin :: state=

An optional and unguessable random string.

Redefined properties

redef type SELF: GithubLogin

popcorn $ GithubLogin :: SELF

Type of this instance, automatically specialized in every class
redef fun get(req: HttpRequest, res: HttpResponse)

popcorn $ GithubLogin :: get

GET handler.

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type BODY: Serializable

popcorn :: Handler :: BODY

Kind of objects returned by deserialize_body
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
fun all(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: all

Handler to all kind of HTTP request methods.
fun allow_signup: Bool

popcorn :: GithubLogin :: allow_signup

Allow signup at login.
fun allow_signup=(allow_signup: Bool)

popcorn :: GithubLogin :: allow_signup=

Allow signup at login.
fun auth_url: String

popcorn :: GithubLogin :: auth_url

Github OAuth login URL.
fun auth_url=(auth_url: String)

popcorn :: GithubLogin :: auth_url=

Github OAuth login URL.
fun build_auth_redirect: String

popcorn :: GithubLogin :: build_auth_redirect

Build Github URL to OAuth service.
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun client_id: String

popcorn :: GithubLogin :: client_id

Client ID delivered by GitHub for your application.
fun client_id=(client_id: String)

popcorn :: GithubLogin :: client_id=

Client ID delivered by GitHub for your application.
fun delete(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: delete

DELETE handler.
fun deserialize_body(req: HttpRequest, res: HttpResponse): nullable BODY

popcorn :: Handler :: deserialize_body

Deserialize the request body
fun get(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: get

GET handler.
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun post(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: post

POST handler.
fun put(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: put

PUT handler.
fun redirect_uri: nullable String

popcorn :: GithubLogin :: redirect_uri

The URL in your application where users will be sent after authorization.
fun redirect_uri=(redirect_uri: nullable String)

popcorn :: GithubLogin :: redirect_uri=

The URL in your application where users will be sent after authorization.
fun scope: nullable String

popcorn :: GithubLogin :: scope

A space delimited list of scopes.
fun scope=(scope: nullable String)

popcorn :: GithubLogin :: scope=

A space delimited list of scopes.
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
fun state: nullable String

popcorn :: GithubLogin :: state

An optional and unguessable random string.
fun state=(state: nullable String)

popcorn :: GithubLogin :: state=

An optional and unguessable random string.
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun validate_body(req: HttpRequest, res: HttpResponse): nullable String

popcorn :: Handler :: validate_body

Validate body input with validator
fun validator: nullable DocumentValidator

popcorn :: Handler :: validator

Validator used to check body input
protected fun validator=(validator: nullable DocumentValidator)

popcorn :: Handler :: validator=

Validator used to check body input
package_diagram popcorn::GithubLogin GithubLogin popcorn::Handler Handler popcorn::GithubLogin->popcorn::Handler core::Object Object popcorn::Handler->core::Object ...core::Object ... ...core::Object->core::Object

Ancestors

interface Object

core :: Object

The root of the class hierarchy.

Parents

abstract class Handler

popcorn :: Handler

Class handler for a route.

Class definitions

popcorn $ GithubLogin
# Github OAuth login handler.
#
# See https://developer.github.com/v3/oauth/.
class GithubLogin
	super Handler

	# Client ID delivered by GitHub for your application.
	#
	# See https://github.com/settings/applications/new.
	var client_id: String is writable

	# The URL in your application where users will be sent after authorization.
	#
	# If `null`, the URL used in application registration will be used.
	#
	# See https://developer.github.com/v3/oauth/#redirect-urls.
	var redirect_uri: nullable String = null is writable

	# A space delimited list of scopes.
	#
	# See https://developer.github.com/v3/oauth/#scopes.
	var scope: nullable String = null is writable

	# An optional and unguessable random string.
	#
	# It is used to protect against cross-site request forgery attacks.
	var state: nullable String = null is writable

	# Allow signup at login.
	#
	# Whether or not unauthenticated users will be offered an option to sign up
	# for GitHub during the OAuth flow. The default is true.
	#
	# Use false in the case that a policy prohibits signups.
	var allow_signup = true is writable

	# Github OAuth login URL.
	var auth_url = "https://github.com/login/oauth/authorize" is writable

	# Build Github URL to OAuth service.
	fun build_auth_redirect: String do
		var url = "{auth_url}?client_id={client_id}&allow_signup={allow_signup}"
		var redirect_uri = self.redirect_uri
		if redirect_uri != null then url = "{url}&redirect_uri={redirect_uri}"
		var scope = self.scope
		if scope != null then url = "{url}&scope={scope}"
		var state = self.state
		if state != null then url = "{url}&state={state}"
		return url
	end

	redef fun get(req, res) do res.redirect build_auth_redirect
end
lib/popcorn/pop_auth.nit:84,1--136,3