私はAngularを初めて使用します。入力したユーザー名をJSONクエリから返されたユーザー名と比較する簡単なログインフォームを開発しています。一致するものが見つかった場合、ログインが処理されます。
私のやり方は安全ではないと感じていますが、返されたJSON文字列にブラウザのコンソールからアクセスできると思っているのは正しいですか?
これを適切に行う方法を理解したら、近い将来、これにもパスワードチェックを追加する予定です。
Angularの方法でユーザーログインの問題に取り組むために正しい方向を指し示したいと思います。
app.js
angular.module('userApp', ["ngResource"]).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/login', {templateUrl: 'partials/login.html', controller: LoginCtrl}).
when('/loggedin', {templateUrl: 'partials/user-admin.html', controller: UserCtrl}).
otherwise({redirectTo: '/login'});
}],[ '$locationProvider', function($locationProvider) {
$locationProvider.html5Mode = true;
}]).
factory("User", function($resource) {
return $resource("users/:userId.json", {}, {
query: {method: "GET", params: {userId: "users"}, isArray: true}
});
});
controllers.js
function LoginCtrl($scope, $route, $routeParams, $location, User) {
$scope.users = User.query();
$scope.loginUser = function() {
var loggedin = false;
var totalUsers = $scope.users.length;
var usernameTyped = $scope.userUsername;
for( i=0; i < totalUsers; i++ ) {
if( $scope.users[i].name === usernameTyped ) {
loggedin = true;
break;
}
}
if( loggedin === true ) {
alert("login successful");
$location.path("/loggedin");
} else {
alert("username does not exist")
}
}
}