[پشتیبانی]: احراز هویت از طریق API
هدف
سلام من میخواستم از طریق api احراز هویت توکن بگیرم. توی داک حرفی از OTP یا همون رمز یکبار مصرف زده نشده اما مثل اینکه نیازه برای این ریکوئست. میخواستم ببینم راهی وجود نداره که بدونه OTP بشه گرفت توکن رو؟ چون کد شناسایی دو عاملی در حساب من فعال نیست اما همچنان با این ارور مواجه میشم.
محیط درخواست
- ابزار درخواست (مرورگر/ابزار/برنامه/...)
- زبان برنامه (cURL/Python/PHP/...)
- محل درخواست (local/VPS/...)
- درخواست IP (داخلی/خارجی)
- ...
نحوه درخواست
curl 'https://api.nobitex.ir/auth/login/'
-X POST
-H "Content-Type: application/json"
--data $'{"username":"[email protected]","password":"**********","captcha":"api"}'
پاسخ دریافتی
{:status 400, :length 61, :body "{"non_field_errors":["OTP not provided"],"code":"MissingOTP"}"}
اطلاعات تکمیلی
No response
حالا جدا از موضوع بالا که فکر میکنم لازم نیست برای اکانتی که شناسایی دو عاملی فعال نداره OTP نباید خواسته بشه یه مسئله دیگه داشتم. من خودم اومدم کد OTP رو جنریت کردم و توی body ریکوئست توی پارامتر X-TOTP دادم اما هنوز با همون خطای بالا که میگه Missing OTP مواجه میشم. ممنون میشم بررسی کنید این مورد رو. توی api داک هم اصلا در این مورد چیزی گفته نشده. حتی گفته نشده که چجوری این پارامتر رو بهش بدیم
درود. بایستی OTP رو توی header ارسال کنی نه body این داکیومنت تا حدی خوب توضیح داده همراه با مثال https://documenter.getpostman.com/view/5722122/Szmcayjw#8f23dbb6-4899-4b64-9ee1-ac7024e7944d
@navid-ahrary ممنونم از راهنماییتون ولی الان یه مسئله دیگه این هست که با وجود اینکه ریکوئست رو مطابق داک پستمن میدم خطایی میده که نمیتونه با credentials ارائه شده لاگین کنه در صورتی که کردنشالز داده شده درسته. ریکوئستم به شکل زیر هستش.
{:method :post, :headers {:X-TOTP "854595"}, :form-params {:username "", :password "", :remeber "yes", :captcha "api"}, :url "https://api.nobitex.ir/auth/login/", :content-type :json}, :reason-phrase "Forbidden", :status 403, :length -1, :body {"non_field_errors" : ["Unable to log in with provided credentials."]}}
@navid-ahrary ممنونم از راهنماییتون ولی الان یه مسئله دیگه این هست که با وجود اینکه ریکوئست رو مطابق داک پستمن میدم خطایی میده که نمیتونه با credentials ارائه شده لاگین کنه در صورتی که کردنشالز داده شده درسته. ریکوئستم به شکل زیر هستش.
{:method :post, :headers {:X-TOTP "854595"}, :form-params {:username "", :password "", :remeber "yes", :captcha "api"}, :url "https://api.nobitex.ir/auth/login/", :content-type :json}, :reason-phrase "Forbidden", :status 403, :length -1, :body {"non_field_errors" : ["Unable to log in with provided credentials."]}}
سلام اگر username و pass رو هم به فرمت درست پاس ندید همین خطا رو میده ۱. همین user, pass رو توی postman تست کردید؟؟ ۲. از چه کتابخونه ای برای پیاده سازی سمت کدتون استفاده کردید؟
@navid-ahrary ممنونم از راهنماییتون ولی الان یه مسئله دیگه این هست که با وجود اینکه ریکوئست رو مطابق داک پستمن میدم خطایی میده که نمیتونه با credentials ارائه شده لاگین کنه در صورتی که کردنشالز داده شده درسته. ریکوئستم به شکل زیر هستش. {:method :post, :headers {:X-TOTP "854595"}, :form-params {:username "", :password "", :remeber "yes", :captcha "api"}, :url "https://api.nobitex.ir/auth/login/", :content-type :json}, :reason-phrase "Forbidden", :status 403, :length -1, :body {"non_field_errors" : ["Unable to log in with provided credentials."]}}
سلام اگر username و pass رو هم به فرمت درست پاس ندید همین خطا رو میده ۱. همین user, pass رو توی postman تست کردید؟؟ ۲. از چه کتابخونه ای برای پیاده سازی سمت کدتون استفاده کردید؟
بدون توجه به کد هم من توی postman میزنم همین ارور رو میده. کتابخونه ارسال درخواست در کد هم clj-http هست.
@navid-ahrary ممنونم از راهنماییتون ولی الان یه مسئله دیگه این هست که با وجود اینکه ریکوئست رو مطابق داک پستمن میدم خطایی میده که نمیتونه با credentials ارائه شده لاگین کنه در صورتی که کردنشالز داده شده درسته. ریکوئستم به شکل زیر هستش. {:method :post, :headers {:X-TOTP "854595"}, :form-params {:username "", :password "", :remeber "yes", :captcha "api"}, :url "https://api.nobitex.ir/auth/login/", :content-type :json}, :reason-phrase "Forbidden", :status 403, :length -1, :body {"non_field_errors" : ["Unable to log in with provided credentials."]}}
سلام اگر username و pass رو هم به فرمت درست پاس ندید همین خطا رو میده ۱. همین user, pass رو توی postman تست کردید؟؟ ۲. از چه کتابخونه ای برای پیاده سازی سمت کدتون استفاده کردید؟
بدون توجه به کد هم من توی postman میزنم همین ارور رو میده. کتابخونه ارسال درخواست در کد هم clj-http هست.
میتونید درخواست curl رو بفرستید؟
@navid-ahrary ممنونم از راهنماییتون ولی الان یه مسئله دیگه این هست که با وجود اینکه ریکوئست رو مطابق داک پستمن میدم خطایی میده که نمیتونه با credentials ارائه شده لاگین کنه در صورتی که کردنشالز داده شده درسته. ریکوئستم به شکل زیر هستش. {:method :post, :headers {:X-TOTP "854595"}, :form-params {:username "", :password "", :remeber "yes", :captcha "api"}, :url "https://api.nobitex.ir/auth/login/", :content-type :json}, :reason-phrase "Forbidden", :status 403, :length -1, :body {"non_field_errors" : ["Unable to log in with provided credentials."]}}
سلام اگر username و pass رو هم به فرمت درست پاس ندید همین خطا رو میده ۱. همین user, pass رو توی postman تست کردید؟؟ ۲. از چه کتابخونه ای برای پیاده سازی سمت کدتون استفاده کردید؟
بدون توجه به کد هم من توی postman میزنم همین ارور رو میده. کتابخونه ارسال درخواست در کد هم clj-http هست.
میتونید درخواست curl رو بفرستید؟
curl 'https://api.nobitex.ir/auth/login/'
-X POST
-H "Content-Type: application/json" -H "X-TOTP: 707912"
--data $'{"username":"--------","password":"------------","captcha":"api"}'
درخواست کاملن درسته. شاید سطح کاربری اکانت مجوز استفاده از API رو نداشته باشه یا هرچی. این مورد رو با پشتیبانی از طریق پرتال نوبیتکس گزارش بده. در ضمن من هم یه کاربرم مثل شمام و پشتیبان نوبیتکس نیستم. فقط خاستم اگه در توان هستم راهنمایی کنم
خیلی ممنونم
@baharasadi @navid-ahrary
سلام میتونید یه راهنمایی به من بدین برای پیاده سازی API هایی که نیاز به ارسال توکن داره،
پیغام خطای "detail": "اطلاعات برای اعتبارسنجی ارسال نشده است." نمایش داده میشه.
ایا نیازه برای توکن اعتبار سنجی انجام بشه؟ یا کار دیگه ای ؟
ممنون
سلام. توکن رو با این فرمت تو header ارسال کنید:
Authorization: Token {access token}
@navid-ahrary ممنون از راهنماییت
توی Postman هم به همین شکل باید نوشته بشه؟
این خطا را میده "detail": "توکن غیر مجاز"
توکن را از قسمت تنظیمات حساب کاربریم برداشتم.
از تو Postman درخواست curl رو بفرست
درست شد. یه سوال دیگه: از کجا متوجه بشم که چه فیلدهایی اجباری هست و باید پر بشه؟ این خطا را میده الان { "status": "failed", "code": "ParseError", "message": "Missing choices value" }
این داکیومنت کامل توضیح داده https://apidocs.nobitex.ir/#api هر فیلد رو مشخص کرده که الزامیه یا خیر
ممنون @navid-ahrary از همین داکیومنت دارم استفاده میکنم
curl 'https://api.nobitex.ir/market/orders/add'
-X POST
-H "Authorization: Token yourTOKENhereHEX0000000000"
-H "content-type: application/json"
--data '{"type":"buy","srcCurrency":"btc","dstCurrency":"rls","amount":"0.6","price":520000000,"clientOrderId":"order1"}'
اینو تو پست من دارم تست میکنم، پارامترهای توی قسمت دیتا باید تو Params نوشته بشه یا Body?
مقدار amount بایستی number باشه نه string
حل شد تو Body باید میزدم
ممنون از لطفت