fluminus v0.1.1 Fluminus.Authorization View Source
Provides an abstraction over the OpenID Connect flow authorization process as used by LumiNUS
Struct fields:
:cookies
- cookies that needs to be sent to the server:jwt
- contains the JWT to be used for authorization to the server
Link to this section Summary
Functions
Obtains a Elixir.Fluminus.Authorization
struct containing JWT required for authorization and cookies to refresh JWT.
Please note that the JWT is usually only valid for 1 hour, and the cookies for 24 hours
Renews the JWT of a Elixir.Fluminus.Authorization
struct containing expired token using the cookies inside the struct.
Please note that the cookie is only valid for 24 hours
Link to this section Types
Link to this section Functions
jwt(username, password)
View Source
jwt(String.t(), String.t()) ::
{:ok, Fluminus.Authorization.t()}
| {:error, :invalid_credentials}
| {:error, any()}
jwt(String.t(), String.t()) :: {:ok, Fluminus.Authorization.t()} | {:error, :invalid_credentials} | {:error, any()}
Obtains a Elixir.Fluminus.Authorization
struct containing JWT required for authorization and cookies to refresh JWT.
Please note that the JWT is usually only valid for 1 hour, and the cookies for 24 hours.
username
is the username of your NUSNET account (in the format of e0123456).
password
is the password of your NUSNET account.
Examples
iex> Fluminus.Authorization.jwt("e0123456", "hunter2")
{:ok,
%Fluminus.Authorization{
cookies: %{
"idsrv" => "Fnl_dY2mhtVU9nyZLb93vpU9I4eZVcWyhrnwBwCkkbrtjBsUFTGVr6JQk_x1DbdsieBzzoxqzVnrQ-dUCwqRD-dKkA1ixFnCggcX_PMcrIzr4PiZj35Z2LpVkMuWSju2BrLOJgpqCO0FFFv3uSX4Ll_jnEgPrptkHPnm6yxHls_oobhn_29Itf--NGWmWdzytx7hOktHBkeBRYhljrUHxqkGtYD2lRngMYBLBLHnTwYnu8ALRVu1oqyeEmEjQbh0pUdDCaLsnIvrFKKVQuB0Fh1z3awLUWJ8awomebTmgE5VeA68RLxy1y3J7rAJCW2IQz4WTpF1lowUry_W3UfIqUbYGcPqcdITcO2FrF6iXmxCaRWsuh07b41dQLYS04o9PRI_Q_gZYRdXroCrd_VPHdLzWi9eOnZ9fHCiG5fj1Do"
},
jwt: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSIsImtpZCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSJ9.eyJpc3MiOiJodHRwczovL2x1bWludXMubnVzLmVkdS5zZy92Mi9hdXRoIiwiYXVkIjoidmVyc28iLCJleHAiOjE1NDkxMDkzNjQsIm5iZiI6MTu0OTEwOTA2NCwibm9uY2UiOiI1NjlaY2VlMDM1MzdjNjQ2ZmU2MmE1MjIzOGFlN2E3ZiIsImlhdCI6MTU0OTEwOTA2NCwiYXRfaGFzaCI6ImZxWWFlLWRNaWRJNGIxZTJSMUVUUkEiLCJjX2hhc2giOiIxSkI3M1BheFVmTUROZVoybmZFcGd3Iiwic3ViIjoiMDMwODkyNTItMGM5Ni00ZmFiLWIwODAaZjJhZWIwN2VlYjBmIiwiYXV0aF90aW1lIjoxNTQ5MTA5MDY0LCJpZHAiOiJpZHNydiIsImFkZHJlc3MiOiJSZXF1ZXN0IGFsbCBjbGFpbXMiLCJhbXIiOlsicGFzc3dvcmQiXX0.NKmxw6ipXr6H2aD2cdoBiMvch9FCmeYAdtsHjYoGerhiaBdoxJ-um8P-0ThEouF4P6YYmltMSsNo9tWFNWOIhY9anU1TgTdYaYCqx5w8N9aAemRF9-PjTZMPCRCnk1xVyI3q06C_uinNJQ00So1lcA9rneWBJJecZwgwKht7EvsUiEUjXso1LgiBxO9LPOcrA47PaMti-228nN6EsxEx7Zpl8bLpQLDWX8XN8N2IKYoyo8nlQKThgziotgKXYJO22Z2DYImGTB46X2u2MfscSAedjzEhssJwVre5w2zztAAgU7E2mSif6V7jC42W7OmKQmi79_N10OAxxMUqUc7c0Q"
}}
renew_jwt(auth)
View Source
renew_jwt(Fluminus.Authorization.t()) ::
{:ok, Fluminus.Authorization.t()}
| {:error, :invalid_authorization}
| {:error, any()}
renew_jwt(Fluminus.Authorization.t()) :: {:ok, Fluminus.Authorization.t()} | {:error, :invalid_authorization} | {:error, any()}
Renews the JWT of a Elixir.Fluminus.Authorization
struct containing expired token using the cookies inside the struct.
Please note that the cookie is only valid for 24 hours.
Examples
iex> Fluminus.Authorization.renew_jwt(auth)
{:ok,
%Fluminus.Authorization{
cookies: %{
"idsrv" => "Fnl_dY2mhtVU9nyZLb93vpU9I4eZVcWyhrnwBwCkkbrtjBsUFTGVr6JQk_x1DbdsieBzzoxqzVnrQ-dUCwqRD-dKkA1ixFnCggcX_PMcrIzr4PiZj35Z2LpVkMuWSju2BrLOJgpqCO0FFFv3uSX4Ll_jnEgPrptkHPnm6yxHls_oobhn_29Itf--NGWmWdzytx7hOktHBkeBRYhljrUHxqkGtYD2lRngMYBLBLHnTwYnu8ALRVu1oqyeEmEjQbh0pUdDCaLsnIvrFKKVQuB0Fh1z3awLUWJ8awomebTmgE5VeA68RLxy1y3J7rAJCW2IQz4WTpF1lowUry_W3UfIqUbYGcPqcdITcO2FrF6iXmxCaRWsuh07b41dQLYS04o9PRI_Q_gZYRdXroCrd_VPHdLzWi9eOnZ9fHCiG5fj1Do"
},
jwt: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSIsImtpZCI6ImEzck1VZ01Gdjl0UGNsTGE2eUYzekFrZnF1RSJ9.eyJpc3MiOiJodHRwczovL2x1bWludXMubnVzLmVkdS5zZy92Mi9hdXRoIiwiYXVkIjoidmVyc28iLCJleHAiOjE1NDkxMDkzNjQsIm5iZiI6MTu0OTEwOTA2NCwibm9uY2UiOiI1NjlaY2VlMDM1MzdjNjQ2ZmU2MmE1MjIzOGFlN2E3ZiIsImlhdCI6MTU0OTEwOTA2NCwiYXRfaGFzaCI6ImZxWWFlLWRNaWRJNGIxZTJSMUVUUkEiLCJjX2hhc2giOiIxSkI3M1BheFVmTUROZVoybmZFcGd3Iiwic3ViIjoiMDMwODkyNTItMGM5Ni00ZmFiLWIwODAaZjJhZWIwN2VlYjBmIiwiYXV0aF90aW1lIjoxNTQ5MTA5MDY0LCJpZHAiOiJpZHNydiIsImFkZHJlc3MiOiJSZXF1ZXN0IGFsbCBjbGFpbXMiLCJhbXIiOlsicGFzc3dvcmQiXX0.NKmxw6ipXr6H2aD2cdoBiMvch9FCmeYAdtsHjYoGerhiaBdoxJ-um8P-0ThEouF4P6YYmltMSsNo9tWFNWOIhY9anU1TgTdYaYCqx5w8N9aAemRF9-PjTZMPCRCnk1xVyI3q06C_uinNJQ00So1lcA9rneWBJJecZwgwKht7EvsUiEUjXso1LgiBxO9LPOcrA47PaMti-228nN6EsxEx7Zpl8bLpQLDWX8XN8N2IKYoyo8nlQKThgziotgKXYJO22Z2DYImGTB46X2u2MfscSAedjzEhssJwVre5w2zztAAgU7E2mSif6V7jC42W7OmKQmi79_N10OAxxMUqUc7c0Q"
}}