Beiträge von StiviK

    Lua
    local waitingTime = 5 * 60 * 1000 // minutes
    local lastExecution = 0
    
    addCommandHandler("deinCommand", function(player)
        if (getTickCount() - lastExecution >= waitingTime) then
            lastExecution = getTickCount()
            -- Hier drunter der Rest deiner Funktion
        end
    end)

    Naja wenn du Half-Life voll auskosten willst ist nur die Valve Index das wahre.
    Aber ich habe keine Ahnung davon und besitze auch keine, so whatever.

    - StiviK

    Achso, ehm man sollte erwähnen, dass die GUIClass von larsowitsh aka @ronald dumb ist.
    Durfte sie nutzen, voll vergessen zu erwähnen

    Die Git-History sagt mir hier komplett etwas anderes.

    Hier die autoren und die anzahl ihrer commits dazu:

    Externer Inhalt cloud.stivik.de
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    In dem Ordner "/vrp/client/classes/GUI" sieht das ganze folgendermaßen aus:

    Externer Inhalt cloud.stivik.de
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Allerdings muss ich fairness halber dazu sagen dass es auch möglich ist dass durch den wechsel von SVN auf Git etwas verloren gegangen ist.
    Aber die gesamt commit anzahl spricht eher gegen diese Theorie. Desweiteren ist auch der erste commit richtig in der Git History.

    Externer Inhalt cloud.stivik.de
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    (Dies ist btw. vor dem eXo Handover)

    Hier falls jemand meine Testing-Methode in Frage stellen will, die befehle welche ich genutzt habe:

    Externer Inhalt cloud.stivik.de
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    But prove me wrong.
    - StiviK

    Nunja, der Server muss erstmal eine verbindung mit dem Client aufbauen, von daher muss der Client initial einen request senden. Der Stream wird halt beendet wenn alle benötigten Daten gesendet wurden.
    Nach meinen Urlaub kann ich dir gerne ein Beispiel für das Server -> Client streaming senden.

    Alternativ musst du dir eine anderen Weg suchen, eigene Socket Verbindung wäre da z.B. eine Möglichkeit.

    - StiviK

    Wie lange sind die Token gültig, kann man die Dauer selbst definieren?

    Ja, dies muss man einfach dann über die claims dementsprechend setzen.

    Lua
    jwtSign(function() end, {["exp"] = "0000000"}, "HS256", "secret")

    Wirklich sicher ist das Ganze ja nur wenn die Signaturebene geheim bleibt, kann man sich dazu Modulseitig dann eigene Signaturregeln definieren?

    Für die Sicherheit ist man ja selbst verantwortlich.
    Das Modul signed den Token mit dem gegeben Algorithmus und dem Secret/PrivateKey

    Sind in Zukunft noch weitere Tokenabstraktionen geplant? (AccessToken, RefreshToken, IdentyToken usw...)

    Inwiefern meinst du das?

    - StiviK

    JWT steht für JSON Web Tokens, diese werden für APIs benutzt, als alternative einer Session, um die authentizität bzw. Identität eines Nutzters zu sicherstellen / mit einem Identity Provider auszutauschen. (Mehr dazu: https://de.wikipedia.org/wiki/JSON_Web_Token)
    Mithilfe des Moduls kann man z.B. für private APIs die man aus MTA ausrufen möchte einene solchen Token austellen. Aber auch validieren oder nur die claims des Tokens auslesen.

    - StiviK

    Hallo,

    Wir, das eXo-Reallife Team, möchten heute ein Modul releasen, dass auch auf unserem Server Verwendung findet.
    Es handelt sich hierbei um ein JWT Modul, dass von StiviK entwickelt wurde.
    https://en.wikipedia.org/wiki/JSON_Web_Token

    Welche Features hat das Modul?

    • verify JWT
    • sign JWT
    • read Claims

    Welche Algorithmen werden unterstüzt?

    • HS256
    • RS256
    • more comming soon

    Wie sieht die API aus?

    Lua
    bool jwtSign(function(string/boolean) callback, table claims, string algorithm, string secret/public_key_path, string private_key_path)

    Diese funktion erstellt und signed euch einen neuen JWT (Token), der token wird dem callback übergeben. Falls etwas nicht funktioniert hat gibt die funktion false zurück oder der callback wird mit false aufgerufen.


    Lua
    bool jwtVerify(string token, string secret/public_key_path, bool is_file_path = false)

    Diese funktion nimmt einen JWT (Token) und verified diesen, es wird auch anhand des keys die signatur überprüft.


    Lua
    table jwtGetClaims(string token)

    Diese funktion nimmt einen JWT (Token) und gibt euch als Key-Value-Pairs die claims zurück.

    Note: Das ganze Modul ist noch WIP (work-in-progress) somit könnte sich die API noch ändern.
    Alle anderen Funktionen die das Modul enthält findet ihr in unserer Dokumentation.

    Warum releast das eXo-Team den ganzen Spaß?
    Nunja, das hat den einfachen Grund, wir wollen unsere Arbeit auch mit anderen teilen und das nicht einfach für uns behalten! Wir hoffen wir können euch damit bereichern und vlt. sogar helfen!

    Wo kann man dann das Modul runterladen?
    Das ganze Modul ist Open-Source und kann in unsere GitHub-Organisation eingesehen werden.
    Released haben wir das ganze unter der MIT License diese kann, hier, eingesehen werden.

    GitHub-Organisation: github.com/eXo-OpenSource
    Repository: github.com/eXo-OpenSource/ml_jwt
    Download des Modules (Windows/Linux): https://github.com/eXo-OpenSource/ml_jwt/releases

    Falls ihr Fehler findet oder Vorschläge habt, könnt ihr einfach einen neuen Issue erstellen und wir werden uns das ganze ansehen!


    So nun das wars auch, viel Spaß mit dem Modul!

    - StiviK und das eXo-Reallife Team

    Externer Inhalt i.imgur.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    (Geklaut :P)

    Nein Spaß beiseite, ich hoffe mal dass sie GitHub nicht durch irgendeine super tolle scheiß Microsoft Idee zerstören. Aber mal sehen vlt haben sie gute Ideen die GitHub besser machen, aber aktuell kann man schwer sagen was sie alles ändern wollen/werden.

    - StiviK