# Panel keep login out

**URL:** <https://forum.getkirby.com/t/panel-keep-login-out/6587>\
**Category:** Questions\
**Tags:** v2\
**Created:** [February 10, 2017, 1:00pm UTC](https://forum.getkirby.com/t/panel-keep-login-out/6587 "2017-02-10T13:00:50Z")\
**Posts on this page:** 1\
**Showing post:** 10

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [February 10, 2017, 7:50pm UTC](https://forum.getkirby.com/t/panel-keep-login-out/6587/10 "2017-02-10T19:50:34Z")

</div>

This is the fingerprint method:

```auto
public static function fingerprint() {

    // custom fingerprint callback
    if(is_callable(static::$fingerprint)) {
      return call(static::$fingerprint);
    } 

    if(!r::cli()) {
      return sha1(Visitor::ua() . (ip2long($_SERVER['REMOTE_ADDR']) & ip2long('255.255.0.0')));      
    } else {
      return '';
    }
  }

```

So, if no custom fingerprint is used, the fingerprint is created like this:

```auto
 return sha1(Visitor::ua() . (ip2long($_SERVER['REMOTE_ADDR']) & ip2long('255.255.0.0')));  

```

In your custom fingerprint, you can do whatever you want, return a string or return only parts of the above, e.g.

```auto
return sha1(Visitor::ua());

```

or whatever works for you.

---

_[View the full topic](https://forum.getkirby.com/t/panel-keep-login-out/6587)._
