虽然nvPress提供了登录接口,但有时并不想在前台手动写一遍登录。那么可以直接调用后台的登录接口,在登录成功后返回前台。
页面流程
flowchart
frontEnd{网站前台}--前台点击登陆-->CallLogin([带重定向参数])
frontEnd--前台点击注册-->CallRegister([带重定向参数])
CallLogin--调起后台登录页-->UserLogin{后台登录页}
UserLogin--登录成功-->StoreNonce([Cookie记录nvnonce])
StoreNonce--根据参数重定向-->frontEnd
Register{后台注册页}--注册成功--->UserLogin
CallRegister--调起后台注册页---->Register
UserLogin--点击注册-->Register
在这个逻辑中,有以下两点需要注意:
- 前台检测登录状态
- 调起登录页面及登陆后跳回的方法
检测登录状态
在前台检测登录状态应该参考《nonce鉴权接口》,以及《权限说明 - 主题与后台的鉴权约定》
调起登录(注册)页面及登录后重定向的方法
- nvPress后台登录页面地址是:
/nv-admin/login
- nvPress后台注册页面地址是:
/nv-admin/register
如果需要登录成功后跳回,应该带上redirect参数。redirect参数格式为JSON字符串。例如:
- 登录带回调:
/nv-admin/login?redirect={"url":"http://前台地址"}
- 注册带回调:
/nv-admin/register?redirect={"url":"http://前台地址"}
注意:
- redirect是JSON字符串,因此务必需要使用双引号。其中的url参数必须是带有http://或https://协议的完整url,不能使用相对地址。
- 登录成功后,登录的nvnonce信息将保存在cookies中,因此,前台不能跨域。跨域则无法读取到相关信息也就无法鉴定登录状态。(若需要跨域,可考虑使用
nv_user_login_cookie_options
过滤器来增加后端设置Cookie时的domain
参数)