mirror of https://github.com/JAJames/RenX-UMLs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.1 KiB
96 lines
3.1 KiB
4 years ago
|
@startuml
|
||
|
|
||
|
box User (Untrusted)
|
||
|
participant User
|
||
|
participant "Game Client" as Game
|
||
|
participant "DLL Bind" as DllBind
|
||
|
participant "Windows Registry" as Registry
|
||
|
end box
|
||
|
|
||
|
box Official Infrastructure (Trusted) #LightBlue
|
||
|
participant "Renegade X Website" as AuthServer
|
||
|
end box
|
||
|
|
||
|
User -> Game: Launch
|
||
|
Game -> User: Loading Screen (intro video)
|
||
|
group Validate Cached AuthID
|
||
|
Game -> DllBind: StartVerifyCachedAuthID()
|
||
|
DllBind -> Registry: Read AuthToken
|
||
|
activate Registry
|
||
|
return AuthToken value
|
||
|
alt AuthToken exists
|
||
|
DllBind -> AuthServer: Validate AuthID Request
|
||
|
DllBind -> Game: True (Request started)
|
||
|
loop Wait for response
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: RequestInProgress
|
||
|
end
|
||
|
alt Authentication success
|
||
|
AuthServer --> DllBind: Authentication Token, ID
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: Success
|
||
|
Game -> User: Go to main menu / join server
|
||
|
else Authentication failed
|
||
|
AuthServer --> DllBind: Authentication Failed
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: Failure
|
||
|
Game -> User: Go to Login Screen
|
||
|
else Authentication Server Offline / No Response
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: Timeout
|
||
|
Game -> User: "Unable to login; continue anyways?"
|
||
|
alt User clicks 'Yes'
|
||
|
User -> Game: Yes
|
||
|
Game -> User: Go to main menu / join server
|
||
|
else User clicks 'Exit'
|
||
|
User -> Game: Exit
|
||
|
Game -> Game: Exit
|
||
|
end
|
||
|
end
|
||
|
else
|
||
|
DllBind -> Game: False (No cached credentials)
|
||
|
Game -> User: Go to Login
|
||
|
end
|
||
|
end
|
||
|
|
||
|
group Login
|
||
|
User -> Game: Login Credentials
|
||
|
Game -> DllBind: StartLoginRequest()
|
||
|
DllBind -> AuthServer: Authentication Request
|
||
|
DllBind --> Game
|
||
|
|
||
|
loop Wait for response
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: RequestInProgress
|
||
|
end
|
||
|
|
||
|
alt Authentication Success
|
||
|
AuthServer --> DllBind: Authentication Token, UserID
|
||
|
opt Remember Me Checkbox Checked
|
||
|
DllBind -> Registry: Store AuthID, UserID
|
||
|
activate Registry
|
||
|
return
|
||
|
end
|
||
|
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: Success
|
||
|
Game --> User: Login Success; go to main menu / join server
|
||
|
else Authentication Failure
|
||
|
AuthServer --> DllBind: Authentication Failed
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: Failure
|
||
|
Game --> User: Display error; repeat Login
|
||
|
else Authentication Server Offline / No Response
|
||
|
Game -> DllBind: CheckAuthRequest()
|
||
|
DllBind --> Game: Timeout
|
||
|
Game -> User: "Unable to login; continue anyways?"
|
||
|
alt User clicks 'Yes'
|
||
|
User -> Game: Yes
|
||
|
Game -> User: Go to main menu / join server
|
||
|
else User clicks 'Exit'
|
||
|
Game -> Game: Exit
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
@enduml
|