بعد أن تعرّف تينه على التطبيق الذي يستخدم تينه، تبقّى أن يتعرّف تينه على المستخدم الذي يستخدم التطبيق، حتّى يعرف تينه ما هي الموارد التي يُمكن للمستخدم الحاليّ أن يستخدمها، مثلاً، ما هي الدوائر التي يستطيع أن يصل إليها، الأفراد الذين يُمكنه استعراض ملفّاتهم الشخصيّة، و هكذا، و لكي يتم ذلك، لابدّ من فهم آلية تسجيل دخول المستخدم. الآلية كالتالي، يمدّ المستخدم يده لمصافحة الخادم للمرّة الأولى و معه رقم الجوّال كمُدخل، طالباً من الخادم إرسال رسالة نصيّة (SMS) تحوي كلمة مرور مؤقتة، كلمة المرور هذه؛ ستمهّد الطريق للمصافحة الثانيّة التي تتم بين المستخدم و الخادم و التي يحمل فيها المستخدم رقم جوّاله و كذلك كلمة المرور المؤقتة.
المصافحة الأولى: الطلب | |
---|---|
GET | {{teenah_api_url}}/users/token/{mobile} |
|
سيقوم الخادم (تينه) بإرسال رسالة نصيّة (SMS) إلى الجوّال مُدخل و ستكون ردود الخادم إمّا 204
في حال إرسال الرسالة أو 403
في حال أن رقم الجوّال غير صحيح:
المصافحة الأولى: الردود | |
---|---|
204 | |
403 |
{ "message": "Not authorized to access this resource." } |
|
بعد عملية المصافحة الأولى التي تمّت بين الخادم و المستخدم، يستطيع أن يطلب المستخدم من الخادم تسجيل دخوله من خلال الإرسال POST
إلى هذا الرابط:
الطلب | |
---|---|
POST | {{teenah_api_url}}/users/login |
|
بعد إرسال المُدخلات إلى الرابط السابق، سيردّ الخادم -بعد تسجيل الدخول- على المستخدم برموز يتذكر المستخدم من خلالها، هذه الرموز التي ينبغي للمستخدم استخدامها في كل استدعاء لأي وظيفة من وظائف النظام. الردرو ستكون إما 200
أو 400
أو 403
أو 404
.
الردود | |
---|---|
200 |
{ "user_token": "$2y$10$d8zl4DaH1.nYJncylUaVf.70UfQm/M55WiFPmoUefKkFhu2n4.uaC", "member_id": 0 } |
|
|
400 |
{ "message": "Wrong mobile number and/or SMS token." } |
|
|
403 |
{ "message": "Not authorized to access this resource." } |
|
|
404 |
{ "message": "User cannot be found." } |
|
بعد تسجيل الدخول إلى الخاد، ينبغي تمرير الرموز التي قبل قليل إلى رأس بعنوان X-User-Token
؛ لكي تتمكن من استدعاء الوظائف الخاصّة بالمستخدم الحاليّ:
الرأس | القيمة |
---|---|
X-User-Token |
$2y$10$d8zl4DaH1.nYJncylUaVf.70UfQm/M55WiFPmoUefKkFhu2n4.uaC |
ربّما تعرّفت على تصميم جداول قاعدة البيانات مُسبقاً، و هي أنّ للمستخدمين جدولاً مستقّلاً عن جدول الأفراد، و لهذا وُجدت هذه الوظيفة لربط الاثنين معاً، بعد الإرسال POST
إلى الرابط في الأسفل سيتم الربط بين المستخدم و الفرد من خلال الحصول على تفاصيل إضافيّة للفرد، كاسمه و تاريخ ميلاده، و غيرها، ردود الخادم ستكون 201
وَ 400
وَ 403
.
الطلب | |
---|---|
POST | {{teenah_api_url}}/users/members |
|
سيرّد الخادم بإنشاء فردٍ جديدٍ و يربطه بالمستخدم الحاليّ إذا كانت البيانات المُدخلة صحيحة، و سيردّ برسائل الخطأ إذا تمّ عكس ذلك.
الردود | |
---|---|
201 |
{ "message": "Member has been created successfully.", "member_id": 2, "user_id": "2" } |
|
|
400 |
{ "message": "Invalid inputs." -- OR -- "message": "The entered name is not within the correct format." } |
|
|
403 |
{ "message": "Not authorized to access this resource." } |
|
إذا أردت عرض معلومات المستخدم المسجّل دخول حاليّاً، ما عليك إلاّ استدعاء وظيفة (dashboard) ليتم عرضها كمصفوفة من المعلومات.
الطلب | |
---|---|
GET | {{teenah_api_url}}/users/dashboard |
ثم سيردّ الخادم بتفاصيل المستخدم الحاليّ كالتّالي:
الرد | |
---|---|
200 |
{ "id": "2", "gender": "male", "name": "حسام", "fullname": null, "nickname": null, "dob": "1989-01-14", "pob": null, "dod": null, "pod": null, "age": "0", "is_alive": "1", "photo": null, "location": null, "mobile": "96655*******", "email": null, "home_phone": null, "work_phone": null, "marital_status": "single", "blood_type": null, "is_root": "0", "tribe_id": null, "created_at": "2014-02-02 17:56:34", "updated_at": "2014-02-02 17:56:34", "social_medias": [], "updates_count": "0", "in_relations": [] } |
|
إذا أراد المستخدم تسجيل الخروج فله ذلك من خلال طلب الرابط في الذي سيأتي تباعاً بفعل GET
ليتم بذلك تسجيل و نسيان جلسة المستخدم.
الطلب | |
---|---|
GET | {{teenah_api_url}}/users/logout |
و ردّ الخادم سيكون كالتالي بعد إتمام عملية تسجيل الخروج:
الرد | |
---|---|
204 |