前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >salesforce零基础学习(一百)Mobile Device Tracking

salesforce零基础学习(一百)Mobile Device Tracking

作者头像
Zero-Zhang
发布于 2021-01-29 02:24:18
发布于 2021-01-29 02:24:18
68900
代码可运行
举报
运行总次数:0
代码可运行

本篇参考:

Mobile Device Tracking (salesforce.com)

UserDevice | SOAP API Developer Guide | Salesforce Developers

背景:项目中有一个需求,当前登录的用户,在手机设备登录(要求指定的设备)和在电脑设备登录要有不同的验证以及不同的跳转以及既有的用户登录的信息。这个判断的东西不可避免的要在 login flow来实现。那么如何获取指定设备的信息呢,这个时候就要用到 Mobile Device Management相关知识了。

一. 启用 Mobile Device Tracking

Mobile Device使用的表有UserDevice以及 UserDeviceApplication。我们去自己的dev环境搜索user发现并没有这两个表,原因是因为这个只能salesforce启用,所以如果我们想尝鲜,需要给salesforce提case,提供当前环境的Org Id让他启用即可。

如何查看当前的Org Id,打开Develop Console,输入以下SOQL即可获取到。

复制查询出来的Id,在trailhead的help点击create case,提交一个case等待salesforce启用即可。启用以后的效果如下

我们点进去这个表,查看一下这个表对应的标准的字段,我们会发现字段竟然没有???真的没有吗???

当然不是,因为我们可能没有权限导致看不到。我们如果想看到或者管理Mobile Device,我们需要有以下的两个权限:View Devices & Manage Devices。

我们声明一个 Permission Set,在 system setting中将 View Devices 以及 Manage Devices这两个permission勾选上,然后assign给想要管理User Device的人。

我们授权以后继续刷新原来的页面,已经拥有了访问权限。

需要注意的是,salesforce并不支持在develop console查询 UserDevice的数据,所以我们需要通过vf 展示在classic或者aura / lwc展示在lex中。官方的demo中是使用visualforce page展示相关信息。

二. 展示User Device信息

所以问题来了,我们想查看手机端登录状况,可以直接有现成的UI去查看吗? 遗憾的是没有的,salesforce支持通过API 或者apex查询方式去获取User Device信息,如果我们想通过UI展示 User Device信息,我们可以通过apex查询,通过vf进行展示或者lwc / aura展示。下面的demo通过vf page展示(来源于官方demo)

1. classic使用vf展示信息

DeviceWrapper.cls:根据UserDevice信息封装一个Wrapper,用于前台展示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 public class DeviceWrapper {
2     public String id{get; set;}
3     public String userName{get; set;}
4     public String deviceType{get; set;}
5     public String platformType{get; set;}
6     public String status{get; set;}
7 }

UserDeviceController.cls:搜索UserDevice信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class UserDeviceController {
    private final List<DeviceWrapper> devices;
        public String targetId{get;set;}

    public UserDeviceController() {
        targetId = '';
        List<UserDevice> userDeviceList = [SELECT Id,User.Name,DeviceType,PlatformType,Status FROM UserDevice];
        devices = new List<DeviceWrapper>();
        for(UserDevice d : userDeviceList) {
            DeviceWrapper a = new DeviceWrapper();
            a.id = d.id;
            a.userName = d.User.Name;
            a.deviceType = d.DeviceType;
            a.platformType = d.PlatformType;
            a.status = d.Status;
            devices.add(a);
        }
    }

    public List<DeviceWrapper> getDevice() {
        return devices;
    }
}

UserDevicePage:展示 UserDevice信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<apex:page controller="UserDeviceController" lightningStylesheets="true">
    <apex:sectionHeader title="Mobile Device Tracking"/>
    <apex:pageBlock>
        <apex:form >
            <apex:pageBlockTable value="{!device}" var="a">
                <apex:column value="{!a.id}" headerValue="Device ID" />
                <apex:column value="{!a.userName}" headerValue="User" />
                <apex:column value="{!a.deviceType}" headerValue="Device Type" />
                <apex:column value="{!a.platformType}" headerValue="Platform" />
                <apex:column value="{!a.status}" headerValue="Status" />
            </apex:pageBlockTable>
        </apex:form>
    </apex:pageBlock>
</apex:page>

结果:我们最开始运行发现里面一条数据没有,原因是什么呢? 因为 Mobile Device Tracking如果通过浏览器登录是不会生成记录的,只有通过手机salesforce app进行登录,尝试授权以后才会生成记录。所以我们在自己的手机下载salesforce app,通过账号密码登录以后,在访问页面就会有记录了。

我们可以看到,当前的记录状态是 Pending Approval。当一台手机设备尝试登录以后,默认的状态是 Pending Approval,我们可以通过 apex对这台设备进行状态更改,比如更改成 Revoked(取消) / approved(通过)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<UserDevice> userDevices = new List<UserDevice>();
userDevices = [SELECT Id,Status FROM UserDevice];
for(UserDevice userDeviceItem : userDevices) {
    userDeviceItem.Status = 'Approved';
}
update userDevices;

结果展示:状态已经变成了 Approved。

同样的, 当这个设备不是我们授权的设备,我们不希望他来窃取我们的公司信息,作为管理员,我们需要将这个设备设置成Revoked。

设置成Revoked以后我们继续使用手机登录,发现手机登录仍然有效,所以我们肯定还要有额外的配置,如下所示。在setup 搜索处搜索 identity verification,勾选上红框的配置即可。

我们再使用手机设备进行登录,输入账号密码以后,会提示无法从此设备登录。

总结:Mobile Device Tracking是一个很好的东西,可以监控追踪哪些手机设备访问你的数据,并且可以设置设备是否允许访问。使用时需要给salesforce support提case开启并且设置相关必要的权限。本篇只抛砖引玉,详情使用自行查看上面文档。篇中有错误地方欢迎指出,有不懂欢迎留言。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
salesforce 零基础开发入门学习(八)数据分页简单制作
本文通过介绍如何利用Apex实现查询报表数据列表,并通过自定义控制器 PageReference 对象,实现分页、翻页、上一页和下一页功能,完成数据列表的展示和分页操作。
Zero-Zhang
2018/01/05
1.1K1
salesforce 零基础开发入门学习(八)数据分页简单制作
salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态
本文主要介绍如何通过CSS和jQuery来实现更好的UI效果,主要涉及到使用颜色、字体、过渡、动画、遮罩、滚动、手风琴、折叠、滑动、切换等效果,并简要介绍了一些JavaScript技术。通过使用这些技术,可以使UI设计更加灵活、易于维护和用户友好。
Zero-Zhang
2018/01/05
1.2K0
salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态
salesforce零基础学习(一百零一)如何了解你的代码得运行上下文
本篇参考:https://developer.salesforce.com/docs/atlas.en-us.228.0.apexcode.meta/apexcode/apex_enum_System_Quiddity.htm
Zero-Zhang
2021/03/09
6720
salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)
该文介绍了在技术社区中,如何利用Apex实现导出Excel功能。首先,定义了一个数据模型用于存储表单提交的数据,然后通过在Controller中定义逻辑,实现导出Excel的功能。同时,对于数据量较大的情况,通过分页导出,并设定字段索引,从而实现了长列表的导出功能。同时,对于字段过多或者某些字段无法导出的问题,通过定制化的字段映射解决了该问题。最后,通过在页面显示导出按钮,实现了导出按钮的显示和点击功能。
Zero-Zhang
2018/01/05
1.6K0
salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)
salesforce 零基础学习(五十九)apex:param使用以及相关的疑惑
本文介绍了在Salesforce中如何利用apex:param标签进行传递参数以及相关的疑惑解答。首先介绍了param的作用以及如何使用,然后讨论了在传递参数过程中可能遇到的问题及解决方法。
Zero-Zhang
2018/01/05
1.2K0
salesforce 零基础学习(五十九)apex:param使用以及相关的疑惑
salesforce零基础学习(一百三十六)零碎知识点小总结(八)
https://developer.salesforce.com/docs/platform/lwc/guide/use-navigate-url-addressable.html
Zero-Zhang
2024/05/12
1880
salesforce零基础学习(一百三十六)零碎知识点小总结(八)
salesforce 零基础学习(五十)自定义View或者List以及查看系统原来的View或者List
本文主要介绍了如何通过自定义视图来查看Salesforce记录的真实数据,包括标准视图、自定义视图和查看原始视图的方法。
Zero-Zhang
2018/01/05
9430
salesforce 零基础学习(五十)自定义View或者List以及查看系统原来的View或者List
salesforce lightning零基础学习(十二) 自定义Lookup组件的实现
本篇参考:http://sfdcmonkey.com/2017/01/07/custom-lookup-lightning-component/,在参考的demo中进行了简单的改动和优化。
Zero-Zhang
2019/05/25
5400
salesforce零基础学习(九十六)项目中的零碎知识点小总结(四)
https://developer.salesforce.com/docs/atlas.en-us.216.0.apexcode.meta/apexcode/apex_classes_keywords_sharing.htm
Zero-Zhang
2020/10/28
8780
salesforce零基础学习(九十六)项目中的零碎知识点小总结(四)
Service Cloud 零基础(五)Trailhead学习 Embedded Chat
本篇参考:https://trailhead.salesforce.com/content/learn/modules/web-chat
Zero-Zhang
2021/03/04
5850
Service Cloud 零基础(五)Trailhead学习 Embedded Chat
salesforce零基础学习(一百二十三)Transaction Security 浅入浅出
本篇参考: https://help.salesforce.com/s/articleView?id=sf.enhanced_transaction_security_policy_types.htm
Zero-Zhang
2022/12/21
5120
salesforce零基础学习(一百二十三)Transaction Security 浅入浅出
salesforce零基础学习(七十一)级联表DML操作
该文讲述了在开发过程中遇到的级联操作中,由于业务逻辑或数据自身操作失败导致需要回滚情况下,如何避免出现数据库中不存在本条记录然而后台绑定的对象却相关复制的问题。在文中提到了使用clone操作或其他好的操作方法来避免此类问题。
Zero-Zhang
2018/01/05
6380
salesforce零基础学习(七十一)级联表DML操作
salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载
本文介绍了如何从零开始学习Salesforce,包括注册账号、配置开发环境、下载和安装开发工具、编写代码以及进行调试。同时,还介绍了一些常用的开发工具,如Force.com IDE和Force.com Explorer。此外,还讲解了如何下载和安装Java和Maven,以及如何使用这些工具进行代码编写和调试。最后,还介绍了一些常用的代码编辑工具,如Visual Studio Code和Sublime Text。通过本文的学习,可以快速入门Salesforce开发,掌握基本的开发技能和工具使用方法。
Zero-Zhang
2018/01/05
4.2K0
salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载
salesforce 零基础学习(六十四)页面初始化时实现DML操作
有的时候我们往往会遇到此种类似的需求:用户在访问某个详细的记录时,需要记录一下什么时候哪个用户访问过此页面,也就是说进入此页面时,需要插入一条记录到表中,表有用户信息,record id,sObjec
Zero-Zhang
2018/01/05
9030
salesforce 零基础学习(六十四)页面初始化时实现DML操作
salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见
项目中,审批操作无处不在。配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个。当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随
Zero-Zhang
2018/01/05
1.4K0
salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见
salesforce 零基础学习(二十四)解析csv格式内容
该文介绍如何使用CSV文件批量导入客户资料到Salesforce,通过在CSV文件中指定列名和数据格式,利用Apex和ODATA接口实现批量插入。
Zero-Zhang
2018/01/05
1.1K0
salesforce 零基础学习(二十四)解析csv格式内容
salesforce 零基础学习(六十五)VF页面应善于使用变量和函数(一)常用变量的使用
本文介绍了如何在Salesforce中创建自定义字段,包括创建步骤、注意事项和创建示例。同时,还介绍了如何在Visualforce页面中使用这些自定义字段,包括如何在页面中显示值、如何使用函数等。通过本文的学习,读者可以了解到如何在Salesforce中创建和自定义字段,以及如何使用这些字段在Visualforce页面中显示和操作数据。
Zero-Zhang
2018/01/05
9060
salesforce 零基础学习(六十五)VF页面应善于使用变量和函数(一)常用变量的使用
salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用
本文主要讲解了在Salesforce中函数的使用,包括数学函数、字符串函数、日期函数、条件函数、逻辑函数、字符串拼接函数、数组函数、JSON函数、类型转换函数、自定义函数等。同时,还介绍了函数的参数、返回值、错误处理、函数调用方式、函数调用时机等。通过本文的学习,读者可以掌握如何在Salesforce中编写自定义函数,以及如何使用内置函数和第三方函数。
Zero-Zhang
2018/01/05
1.1K0
salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用
salesforce 零基础学习(六十)Wizard样式创建数据
项目中表之间关联关系特别多,比如三个表中A,B,C  C作为主表,A,B作为从表,有时候C表需要创建数据时,同时需要创建A,B两个表的数据,这种情况下,使用Wizard样式会更加友好。 以Goods_
Zero-Zhang
2018/01/05
8940
salesforce 零基础学习(六十)Wizard样式创建数据
salesforce 零基础学习(二十八)使用ajax方式实现联动
Zero-Zhang
2018/01/05
1.1K0
salesforce 零基础学习(二十八)使用ajax方式实现联动
推荐阅读
salesforce 零基础开发入门学习(八)数据分页简单制作
1.1K1
salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态
1.2K0
salesforce零基础学习(一百零一)如何了解你的代码得运行上下文
6720
salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)
1.6K0
salesforce 零基础学习(五十九)apex:param使用以及相关的疑惑
1.2K0
salesforce零基础学习(一百三十六)零碎知识点小总结(八)
1880
salesforce 零基础学习(五十)自定义View或者List以及查看系统原来的View或者List
9430
salesforce lightning零基础学习(十二) 自定义Lookup组件的实现
5400
salesforce零基础学习(九十六)项目中的零碎知识点小总结(四)
8780
Service Cloud 零基础(五)Trailhead学习 Embedded Chat
5850
salesforce零基础学习(一百二十三)Transaction Security 浅入浅出
5120
salesforce零基础学习(七十一)级联表DML操作
6380
salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载
4.2K0
salesforce 零基础学习(六十四)页面初始化时实现DML操作
9030
salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见
1.4K0
salesforce 零基础学习(二十四)解析csv格式内容
1.1K0
salesforce 零基础学习(六十五)VF页面应善于使用变量和函数(一)常用变量的使用
9060
salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用
1.1K0
salesforce 零基础学习(六十)Wizard样式创建数据
8940
salesforce 零基础学习(二十八)使用ajax方式实现联动
1.1K0
相关推荐
salesforce 零基础开发入门学习(八)数据分页简单制作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验