PDA

View Full Version : چک کردن لاگین کاربر با json



imohammad
پنج شنبه 01 مرداد 1394, 10:29 صبح
سلام
من یه اپلیکیشن با angularjs دارم که از طریق متد $http به api که براش نوشتم (با php نوشتم، داده ها رو به صورت json بر میگردونه) متصل میشه و داده رد و بدل میکنه
حالا سوال اینه چطور میشه واسه همچین سیستمی لاگین تعریف کرد؟

amg_123
جمعه 02 مرداد 1394, 11:07 صبح
سلام
به دو روش میشه این کار رو انجام داد
1. روش اول اینکه یه فایل مثلا به اسم panel.php داشته باشی که نقش یه واسط رو داشته باشه. تو این فایل میگی اگه کاربر لاگین کرده بود صفحه انگولارت لود بشه اگه نکرده بود یه صفحه لاگین به روش معمولی واسش لود بشه. یه جورایی یعنی این که تا کاربر لاگین نشده صفحه انگولار بالا نیاد.
2. اگه که میخوای کلا SPA باشه

script.js

var app = angular.module('test', []);
app.factory('loginFactory', function($http) {
return {
login: function(loginData) {
return $http({
method: 'POST',
url: '/login',
headers: { 'Content-Type' : 'application/x-www-form-urlencoded' },
data: $.param(loginData)
});
}
}
})
app.controller('loginCtrl', function($scope, loginFactory) {
$scope.login = function () {
loginFactory.login($scope.loginForm).then(function (response) {
if(response.data == 'success') {
alert('Authentication Successful')
}
});
}
});


index.html


<input type="text" ng-model="loginForm.username">
<input type="password" ng-model="loginForm.password">
<input type="submit" ng-click="login()">

و یا اینکه از پلاگینا آماده مثل این (https://github.com/sahat/satellizer) استفاده کنید.
من خودم از روش 1 بیشتر خوشم میاد چون امنیتش بهتره و سمت سرور چک میشه.
در ضمن من تجربه کمی از انگولار دارم شاید اینا که گفتم هیچ کدومشون بهترین روش نباشن مخصوصا اون تیکه کدی که نوشتم.

imohammad
جمعه 02 مرداد 1394, 13:16 عصر
ممنون از توضیحت
بیشتر مشکلم سر اینه مثلا کاربر بخواد پست ارسال کنه قبلش باید چک شه لاگینه یا نه!! یعنی دسترسی به سژن

amg_123
جمعه 02 مرداد 1394, 19:37 عصر
خب این کار رو باید با php انجام بدین. اگه لاگین نبود بهش پیغام داده بشه. قبل این که تو دیتابیس سیوش کنید خب چک بکنید فک نکنم مشکلی \یش بیاد

Master_Power
جمعه 02 مرداد 1394, 21:22 عصر
دوست عزیز این روش را برید جلو

1. تعریف کنید که اگه نام کاربری و پسورد وارد شده تو فرم مطابق نام کاربری و پسورد داخل دیتابیس بود بیاد 2 تا سیشن بسازه و لاگین کنه در غییر اینصورت ریدایرکت کنه تو همون صفحه لاگین

2. این سیشن ها را توی تمام صفحات مربوط به پنل کاربری شخص بزار


اینجوری کاربر حتی اگه نام کاربری و پسورد هم نزده باشه و آدرس مستقیم اون صفحه خاص را بزنه نمیتونه ببینه و باید لاگین کنه
امیدوارم تونسته باشم کمکی کرده باشم

اگه هم باز مشکل داشتی با آی دی یاهو من در تماس باش yk5742g

imohammad
یک شنبه 04 مرداد 1394, 13:01 عصر
بله میدونم اینارو
مساله اینه که به صورت ریموت ب وبسرویس وصله، مثل یه مرورگر عادی باهاش رفتار میشه؟