@expressive-analytics/deep-thought-authentication
Version:
Typescript conversion of Deep Thought Authentication
42 lines (37 loc) • 949 B
text/typescript
import {DT, DTModel,hasA} from '@expressive-analytics/deep-thought-js'
import {DTUser,DTUserModel} from './DTUser'
const strtotime = require('locutus/php/datetime/strtotime')
const md5 = require('blueimp-md5')
export interface DTResetToken extends DT{
token?:string
user:DTUser,
expires_at?:string
expires_at_ms?:string
is_valid:number
}
export class DTResetTokenModel extends DTModel{
protected static $T = "reset_tokens";
protected static $hasA:hasA = {
user: {user_id:DTUserModel}
}
_expires_at:string
_token:string
is_valid=1
$getters = {
token(){
this._token = this._token===undefined?md5(Math.random()):this._token
return this._token
},
expires_at(){
this._expires_at = this._expires_at===undefined?this.db.date(strtotime('+1 day')):this._expires_at
}
}
$setters = {
token(val){
this._token = val
},
expires_at(val){
this._expires_at = val
}
}
}