README

AuthSCH könyvtár Go-hoz

Dokumentáció

https://pkg.go.dev/git.sch.bme.hu/kszk/opensource/authsch-go

Használat

  1. regisztráld az appod itt: https://auth.sch.bme.hu/console/index
  2. találd ki, hogy milyen scope-ok kellenek, ehhez help itt van: https://git.sch.bme.hu/kszk/authsch/-/wikis/api
  3. töltsd le a könyvtárt:
go get -u git.sch.bme.hu/kszk/opensource/authsch-go
  1. hívd meg az authsch.CreateClient-et és használd, erre egy példa van a doksiban: https://pkg.go.dev/git.sch.bme.hu/kszk/opensource/authsch-go#example-AccDetails
Expand ▾ Collapse ▴

Documentation

Overview

    AuthSCH bejelentkezés könyvtár Go-hoz

    Index

    Examples

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type AccDetails

    type AccDetails struct {
    	InternalID     string `json:"internal_id"`
    	Surname        string `json:"sn"`
    	GivenName      string `json:"givenName"`
    	Mail           string `json:"mail"`
    	DisplayName    string `json:"displayName"`
    	LinkedAccounts struct {
    		Bme    string `json:"bme"`
    		SchAcc string `json:"schacc"`
    		Vir    int    `json:"vir"`
    		VirUid string `json:"virUid"`
    	} `json:"linkedAccounts"`
    	LinkedAccountsLastSync struct {
    		Bme    int `json:"bme"`
    		SchAcc int `json:"schacc"`
    		Vir    int `json:"vir"`
    	} `json:"lastSync"`
    	EduPersonEntitlement []struct {
    		Id     int      `json:"id"`
    		Name   string   `json:"name"`
    		Status string   `json:"status"`
    		Title  []string `json:"title"`
    		Start  string   `json:"start"`
    		End    string   `json:"end"`
    	} `json:"eduPersonEntitlement"`
    	Mobile       string   `json:"mobile"`
    	ADMembership []string `json:"admembership"`
    	BMEUnitScope []string `json:"bmeunitscope"`
    }

      Egy felhasználó lekérhető adatai. A scope-októl függően az InternalID-n kívül a többi mező üres lehet. A scope-oktról több infót itt találsz: https://git.sch.bme.hu/kszk/authsch/-/wikis/api

      Example

        Ez a webszerver a /-ben átirányít AuthSCH-s bejelentkezésre, ahol minden támogatott scope-ot kér, majd a kapott parse-olt adatot JSON-ként visszaküldi a felhasználónak.

        Output:
        
        

        type Client

        type Client struct {
        	*oauth2.Config
        }

          Egy AuthSCH kliens

          func CreateClient

          func CreateClient(ClientID, ClientSecret string, Scopes []string) Client

            Létrehoz egy klienset. Meg kell adni az AuthSCH-n fejlesztői konzolon kapott azonosítót és kulcsot, illetve a kért scope-okat A scope-oktról több infót itt találsz: https://git.sch.bme.hu/kszk/authsch/-/wikis/api

            func (*Client) GetAuthURL

            func (c *Client) GetAuthURL() string

              Ad egy URL-t az AuthSCH-s bejelentkező ablakhoz, ide kell irányítani a usert. Az AuthSCH majd visszairányítja a usert a megadott URL-re.

              func (*Client) GetLoginHandler

              func (c *Client) GetLoginHandler(next func(details *AccDetails, w http.ResponseWriter, r *http.Request), errorCallback func(w http.ResponseWriter, r *http.Request)) http.Handler

                Egy http.Handler-t ad vissza, amit be kell kötni arra az URL-re, ahova az AuthSCH átirányít A next paraméter megkapja a user adatait a details változóban, illetve egy http.ResponseWriter-t és *http.Request-et is, így az a függvény célszerűen eltárolja a user adatait, beállít egy sütit, majd átirányítja. Az errorCallback paraméterben megadott függvény pedig hibás belépés esetén fut le, ott célszerű egy hibaoldalt megjeleníteni.

                Source Files