Tastypie を使用して API を作成しています。次の関数を使用してログインしています
def signin(self, request, **kwargs):
self.method_check(request, allowed=['post'])
data = self.deserialize(request, request.body, format=request.META.get('CONTENT_TYPE', 'application/json'))
username = data.get('username', '')
password = data.get('password', '')
try:
user = User.objects.get(username=data.get('username', ''))
if user.get_profile().status == 3 or user.get_profile().status == 4:
return self.create_response(request, {'success': False, 'reason': 'Account Disabled or Closed' })
user = authenticate(username=username, password=password)
if user:
if user.get_profile().status == 2:
return self.create_response(request, {'success': True,'is_verified':False })
return self.create_response(request, {'success': True,'is_verified':True })
else:
return self.create_response(request, {'success': False, 'reason': 'Wrong Email or Password' })
except User.DoesNotExist:
return self.create_response(request, { 'success': False, 'reason':'Email not registered' })
しかし、jQueryを使用してログインすると
<script type="text/javascript">
$(document).ready(function() {
$( "#signin" ).click(function() {
var username=$("#inputEmail1").val();
var password=$("#inputPassword1").val();
if (username.length == 0 || password.length == 0) {
alert('enter email and password to login.')
}else{
$.ajax({
type: "POST",
url: "/api/v1/user/signin/",
data: JSON.stringify({ 'username':username,'password':password }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data, status, xhr){
$.cookie();
if (data.success){
if (data.is_verified) {
alert('Logged in and is_verified');
}else{
alert('Logged in but not verified');
}
}else{
alert('Incorrect username or password');
}
},
failure: function(errMsg) {
alert(errMsg);
}
});
};
});
})
</script>
しかし、 $.cookie(); でクッキーを取得しようとすると firebug では ( jquery-cookieを使用)、空のオブジェクト (Object {}) を返します
私は何かを逃していますか?何かを追加する必要がありますか?これは iOS で問題なく動作します。何らかの方法で Cookie をフェッチし、セッションを記憶します。しかし、ここではありません。