---
title: "Blogga med Zend Framework - Del 9: Zend_Auth"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/175983-blogga-med-zend-framework-del-9-zend-auth"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "jme"
published: "2008-12-21T21:38:27.000Z"
updated: "2008-12-21T21:38:27.000Z"
replies: 0
views: 3607
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/webbutveckling/175983-blogga-med-zend-framework-del-9-zend-auth"
---

# Blogga med Zend Framework - Del 9: Zend_Auth

## #1 — jme, 2008-12-21T21:38Z

Zend_Auth är en modul för att identifiera en användare och säkerställa att användaren är den han/hon utsäger sig för att vara. Zend_Auth innehåller flera "adaptrar" som möjliggör autentisering mot olika källor, t.ex:

•	databas
•	LDAP
•	OpenId
•	och fler…

Vi har valt att använda databasen som källa och guiden kommer att förklara Zend_Auth ur databasens synvinkel. Mer om Zend_Auth finns att läsa på sidan <http://framework.zend.com/manual/en/zend.auth.html>.

När vi använder en databas som källa måste vi ange namnet på användartabellen samt fälten för användarnamnet och lösenordet:

```php
$adapter = Zend_Db_Table::getDefaultAdapter();

$authAdapter = new Zend_Auth_Adapter_DbTable($adapter);
$authAdapter->setTableName('users');
$authAdapter->setIdentityColumn('username');
$authAdapter->setCredentialColumn('password');

Sedan måste vi ge adaptern användarnamnet och lösenordet från formulärfältet:
// notera att $_POST används för exemplets skull
$authAdapter->setIdentity($_POST['username]);
$authAdapter->setCredential($_POST['password]);

Nästa steg blir själva autentiseringen:
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);

if($result->isValid() )
{
	$data = $authAdapter->getResultRowObject(null, 'password'); // vi vill inte lagra lösenordet
	$auth->getStorage()->write($data);
	
	echo "KTHXBYE";
}
else
{
	echo "FAIL";
}	

För att se, om användaren är inloggad:
// i princip samma kod finns att hitta i vår view helper Zend_View_Helper_LoggedIn
$auth = Zend_Auth::getInstance(); 

if($auth->hasIdentity() )
{
	$username = $auth->getStorage()->read()->username;
	
	echo "Welcome $username";
}
```

Notera att vår blogg inte hanterar lösenord på ett korrekt och säkert sätt. Lösenordet lagras som klartext i databasen. Lösenordet borde hashas och saltas men det får bli en hemläxa!

Autentisering av användaren skall även göras vid varje HTTP-förfrågan och inte bara då vi vill visa alternativ text i vyn. Mer om hur detta görs får ni veta när vi behandlar Zend_Acl.

Permalänk: https://www.webforum.nu/p/175983

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/175983-blogga-med-zend-framework-del-9-zend-auth
