To use OAuth with OKX, you'll need to integrate the OAuth 2.0 flow into your application. OKX OAuth allows you to authenticate users and access their data (with permission) โ such as account info, balances, and trading actions โ without storing their credentials.
โ
What is OKX OAuth?
OAuth is a secure authorization framework. With OKX OAuth, you can:
Authenticate users using their OKX accounts
Access protected OKX user data via API
Let users trade or access portfolios via your app
๐ 1. Register Your App with OKX
Before anything, contact OKX support or your BD (Business Developer) to enable OAuth access and get your:
client_id
client_secret
redirect_uri
You wonโt find a self-service OAuth app page on OKX; itโs done via BD approval.
๐ 2. Set Environment Variables (.env)
OKX_CLIENT_ID=your_client_id
OKX_CLIENT_SECRET=your_client_secret
OKX_REDIRECT_URI=https://yourdomain.com/okx/callback
OKX_AUTH_URL=https://www.okx.com/oauth/authorize
OKX_TOKEN_URL=https://www.okx.com/oauth/token
๐ 3. Create OAuth Routes
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\OKXAuthController;
Route::get('/okx/login', [OKXAuthController::class, 'redirectToOKX']);
Route::get('/okx/callback', [OKXAuthController::class, 'handleOKXCallback']);
๐ 4. Create the OKXAuthController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class OKXAuthController extends Controller
{
public function redirectToOKX()
{
$query = http_build_query([
'client_id' => env('OKX_CLIENT_ID'),
'response_type' => 'code',
'redirect_uri' => env('OKX_REDIRECT_URI'),
'scope' => 'read', // scopes may vary, check OKX API docs
]);
return redirect(env('OKX_AUTH_URL') . '?' . $query);
}
public function handleOKXCallback(Request $request)
{
$code = $request->input('code');
$response = Http::asForm()->post(env('OKX_TOKEN_URL'), [
'grant_type' => 'authorization_code',
'code' => $code,
'redirect_uri' => env('OKX_REDIRECT_URI'),
'client_id' => env('OKX_CLIENT_ID'),
'client_secret' => env('OKX_CLIENT_SECRET'),
]);
$data = $response->json();
// Store token in session or DB
session([
'okx_access_token' => $data['access_token'],
'okx_refresh_token' => $data['refresh_token'],
]);
return redirect('/dashboard')->with('success', 'OKX Connected!');
}
}
๐ 5. Make Authenticated API Requests
$response = Http::withToken(session('okx_access_token'))
->get('https://www.okx.com/api/v5/account/balance');
$data = $response->json();
๐ง Notes:
OKX doesnโt have full public documentation for OAuth usage โ reach out to OKX support or BD for detailed scopes and production access.
Be careful with access token expiry; youโll need to implement a refresh token handler.