nukefromorbit / nuke-php
Nuke PHP library
Installs: 389
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/nukefromorbit/nuke-php
Requires
- php: >=8.3
- ext-mbstring: *
- ext-openssl: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- php-mock/php-mock: ^2.5
- phpunit/phpunit: ^11.4
- squizlabs/php_codesniffer: ^3.10
README
Domain Verify
- .well-known file
sequenceDiagram participant nuke as Nuke participant service as Service Domain note over service: create {your service domain}/.well-known/nuke-verify/{nuke token}<br><br>payload:<br>{nuke token} nuke ->> service: GET {your service domain}/.well-known/nuke-verify/{nuke token} service -->> nuke: headers:<br>Status-Code: 200 OK<br><br>payload:<br>{nuke token} note over service: delete {your service domain}/.well-known/nuke-verify/{nuke token}Loading - DNS
sequenceDiagram participant nuke as Nuke participant service as Service Domain note over service: create TXT DNS for _nuke_verify.{your service domain}<br><br>payload:<br>{nuke token} nuke ->> service: CHECK TXT DNS _nuke_verify.{your service domain} for {nuke token} service -->> nuke: Domain is verified note over service: delete TXT DNS for _nuke_verify.{your service domain}Loading
Browser & Webhook Authorize Event
Nuke > Service > Nuke
sequenceDiagram
participant nuke as Nuke
participant service as Service
participant service_api as Service API
nuke ->> service: {service url}<br>?type=authorize<br>&source=nuke<br>&nuke_identifier={nuke identifier}<br>&nuke_token={nuke token}<br>&redirect_uri={nuke app url}
note over service: nuke_token: Event::construct(BrowserAuthorizeEvent::class)
note over service: service_token: generated by your service
service ->> nuke: {nuke app url}<br>?type=authorize<br>&source=nuke<br>&nuke_identifier={nuke identifier}<br>&nuke_token={nuke token}<br>&service_token={service token}
nuke ->> service_api: POST {service api webhook url}<br><br>headers:<br>X-Nuke-Identifier: {nuke identifier}<br>X-Nuke-Signature: t={current time}, v={signature}<br><br>payload (json):<br>{event: {type: authorize, data: {token: {service token}}}}
note over service_api: Event::construct(WebhookAuthorizeEvent::class)
note over service_api: verify/identify and set as active service_token
service_api -->> nuke: headers:<br>Status-Code: 204 No Content
Loading
Service > Nuke > Service
sequenceDiagram
participant service as Service
participant nuke as Nuke
participant service_api as Service API
note over service: service_token: generated by your service
service ->> nuke: {nuke app url}<br>?type=authorize<br>&source=service<br>&nuke_identifier={nuke identifier}<br>&service_token={service token}<br>&redirect_uri={service url}
nuke ->> service_api: POST {service api webhook url}<br><br>headers:<br>X-Nuke-Identifier: {nuke identifier}<br>X-Nuke-Signature: t={current time}, v={signature}<br><br>payload (json):<br>{event: {type: authorize, data: {token: {service token}}}}
note over service_api: Event::construct(WebhookAuthorizeEvent::class)
note over service_api: verify/identify and set as active service_token
service_api -->> nuke: headers:<br>Status-Code: 204 No Content
nuke ->> service: {service url}
Loading
Webhook Revoke Event
sequenceDiagram
participant nuke as Nuke
participant service_api as Service API
nuke ->> service_api: POST {service api webhook url}<br><br>headers:<br>X-Nuke-Identifier: {nuke identifier}<br>X-Nuke-Signature: t={current time}, v={signature}<br><br>payload (json):<br>{event: {type: revoke, data: {token: {service token}}}}
note over service_api: Event::construct(WebhookRevokeEvent::class)
note over service_api: verify/identify and set as revoked service_token
service_api -->> nuke: headers:<br>Status-Code: 204 No Content
Loading
Webhook Nuke Event
sequenceDiagram
participant nuke as Nuke
participant service_api as Service API
nuke ->> service_api: POST {service api webhook url}<br><br>headers:<br>X-Nuke-Identifier: {nuke identifier}<br>X-Nuke-Signature: t={current time}, v={signature}<br><br>payload (json):<br>{event: {type: nuke, data: {token: {service token}}}}
note over service_api: Event::construct(WebhookNukeEvent::class)
note over service_api: verify/identify and perform nuke action based on service_token
service_api -->> nuke: headers:<br>Status-Code: 204 No Content
Loading