是否可以與cakePhp網站通信android應用程序並共享數據?如果可能的話,我想創建一個可以登錄到網站的應用程序;我的疑問是:連接Android應用程序與CakePhp網站
如何將用戶名和密碼從我們的應用程序傳遞到cakephp網站登錄頁面?任何人都可以給我看一個示例程序嗎?
cakephp控制器如何處理此請求並響應此請求?請給我看一個示例程序?
(我在Android和CakePHP的初學者。)
是否可以與cakePhp網站通信android應用程序並共享數據?如果可能的話,我想創建一個可以登錄到網站的應用程序;我的疑問是:連接Android應用程序與CakePhp網站
如何將用戶名和密碼從我們的應用程序傳遞到cakephp網站登錄頁面?任何人都可以給我看一個示例程序嗎?
cakephp控制器如何處理此請求並響應此請求?請給我看一個示例程序?
(我在Android和CakePHP的初學者。)
使用Admad JWT驗證插件
如果使用cakephp3與改變你的登錄功能這一項:
public function token() {
$user = $this->Auth->identify();
if (!$user) {
throw new UnauthorizedException('Invalid username (email) or password');
}
$this->set([
'success' => true,
'data' => [
'token' => JWT::encode([
'sub' => $user['id'],
'exp' => time() + 604800
],
Security::salt())
],
'_serialize' => ['success', 'data']
]);
}
您可以閱讀本教程的REST API和智威湯遜驗證實施
http://www.bravo-kernel.com/2015/04/how-to-add-jwt-authentication-to-a-cakephp-3-rest-api/
快速的答案 - 是的!
我們剛剛完成推出一個Android應用程序到市場,做這件事。以下是我們如何做到的:
1)在Eclipse中下載並學習使用Cordova PhoneGap(2.2.0是最新版本)。這隻需要一些HTML和大量的Javascript就可以讓整個事情變得更容易。
2)在你的JS中,創建使用AJAX參數推送登錄信息的方法。例如:
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
$("#login").click(function() {
$email = $("#UserEmail").val();
$pass = $("#UserPassword").val();
$.ajax({
url : yourURL + 'api/users/login',
async : false,
data : {
'email' : $email,
'password' : $pass
},
dataType : 'json',
type : 'post',
success : function(result) {
/**
* do your login redirects or
* use localStorage to store your data
* on the phone. Keep in mind the limitations of
* per domain localStorage of 5MB
*/
// you are officially "logged in"
window.location.href = "yourUrl.html";
return;
},
error : function(xhr, status, err) {
// do your stuff when the login fails
}
});
}
}
3)在蛋糕/ PHP,在這裏你的用戶控制器將在AJAX調用的用戶名和密碼的數據,並使用其認證。
<?php
class UsersController extends AppController {
public $name = 'Users';
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('api_login');
}
public function api_login() {
$this->autoRender = false;
if ($this->request->data && isset($this->request->data['email']) && isset($this->request->data['password'])) {
$arrUser = $this->User->find('all',array(
'conditions'=>array(
'email'=> $this->request->data['email'],
'password' => $this->Auth->password($this->request->data['password']),
)
)
);
if (count($arrUser) > 0) {
$this->Session->write('Auth.User',$arrUser[0]['User']);
// Do your login functions
$arrReturn['status'] = 'SUCCESS';
$arrReturn['data'] = array('loginSuccess' => 1,'user_id' => $arrUser[0]['User']['id']);
} else {
$arrReturn['status'] = 'NOTLOGGEDIN';
$arrReturn['data'] = array('loginSuccess' => 0);
}
} else {
$arrReturn['status'] = 'NOTLOGGEDIN';
$arrReturn['data'] = array('loginSuccess' => 0);
}
echo json_encode($arrReturn);
}
}
?>
就是這樣。您現在通過了CakePHP的身份驗證。
你不需要使用「api_」,你可以使用你想要的任何函數名稱,但是這幫助我們保持了我們允許移動用戶對web用戶執行的操作。
現在,這些只是構建模塊。您基本上必須使用HTML和Javascript在手機上創建網站的完整版本,因此根據您的應用程序,創建適用於您的網站的響應式設計並允許移動瀏覽可能更容易。
HTH!
非常感謝你,作爲一個初學者你的答案是非常有用的,我 –
你能不能給我傳遞了Android代碼用戶名和密碼到cakephp?也可以從cakephp控制器中檢索一些數據到android應用程序 –
的一些數據的代碼可以請你給我連接cakephp網站的Android代碼 –
也許這可以幫助[http://stackoverflow.com/questions/9551873/cakephp-2-0-and-mobile-application-authentication][1] 如果不是,請告訴我 [1]:http:// stackoverflow。COM /問題/ 9551873/CakePHP的-2-0和移動應用程序的認證 –
非常感謝你 –