1. Через параметр в запросе
На клиенте отправляем
1 |
IdHTTP.Get('http://localhost/getHeaders?AuthToken=someCode'); |
На сервере принимаем в CommandGet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
if ARequestInfo.Params.Values['AuthToken'] = 'someCode' then begin if ARequestInfo.URI = '/testConnection' then begin AResponseInfo.ResponseNo := 200; AResponseInfo.CacheControl := 'no-cache'; AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Origin: *'); AResponseInfo.ContentText := 'ok'; AResponseInfo.ResponseNo := 200; AResponseInfo.WriteContent; end; end else AResponseInfo.AuthRealm := 'not Authorized'; |
2. Через параметр в заголовке
На клиенте отправляем
1 |
IdHTTP.Request.CustomHeaders.AddValue('AuthToken', 'someCode'); |
На сервере
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
if ARequestInfo.RawHeaders.Values['AuthToken'] = 'someCode' then begin if ARequestInfo.URI = '/testConnection' then begin AResponseInfo.ResponseNo := 200; AResponseInfo.CacheControl := 'no-cache'; AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Origin: *'); AResponseInfo.ContentText := 'ok'; AResponseInfo.ResponseNo := 200; AResponseInfo.WriteContent; end; end else AResponseInfo.AuthRealm := 'not Authorized'; |
3. Базовая авторизация
На клиенте
1 2 3 4 |
IdHTTP.Request.BasicAuthentication:=true; IdHTTP.Request.Username:='1234'; IdHTTP.Request.Password:='1234'; IdHTTP.Get('http://localhost/getHeaders?AuthToken=someCode'); |
На сервере
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
if ARequestInfo.AuthExists and ((ARequestInfo.AuthUsername = '123') and (ARequestInfo.AuthPassword = '1234')) then begin if ARequestInfo.URI = '/testConnection' then begin AResponseInfo.ResponseNo := 200; AResponseInfo.CacheControl := 'no-cache'; AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Origin: *'); AResponseInfo.ContentText := 'ok'; AResponseInfo.ResponseNo := 200; AResponseInfo.WriteContent; end; end else AResponseInfo.AuthRealm := 'not Authorized'; |
Можно и все 3 способа поставить для разных программистов)
Удачи в коде !!!