123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- //authorize.js
- import api from './utilsTools.js'
- import requestUrl from '@/services/config.env.js'
- //判断是否登陆 通过检测sessionkey是否过期 1未过期 0已过期
- const checkSessionKey = () => {
- return new Promise((resolve, reject) => {
- const user = uni.getStorageSync('user') // 用户缓存信息
- if (user) {
- uni.checkSession({
- success() {
- resolve(1) //状态未过期
- },
- fail() {
- resolve(0) //状态已过期
- }
- })
- } else {
- resolve(2) //未存贮
- }
- })
- }
- // 登录授权
- const login = (params) => {
- return new Promise((resolve, reject) => {
- authDo(params).then(res => {
- if (res.statusCode && res.statusCode != 200) {
- reject('网络错误,请检查一下网络')
- return
- }
- if (res.data.code != 0) {
- reject('登录失败')
- return
- }
- let user = res.data.data.user
- uni.setStorageSync('user', user) //储存用户信息到本地
- resolve(user)
- })
- })
- }
- // 查询用户信息 write by self
- const authDo = function(params) {
- return new Promise(function(resolve, reject) {
- uni.request({
- url: requestUrl + '/login/doLogin',
- data: params,
- method: 'POST',
- header: {
- 'content-type': 'application/x-www-form-urlencoded'
- },
- success: function(res) {
- resolve(res)
- },
- fail: function() {
- reject('保存用户信息失败')
- }
- })
- })
- }
- // 获取服务商信息 uni-app是聚合开发 所以先获得是什么小程序 原生的不用这个
- const getProvider = () => {
- return new Promise((resolve, reject) => {
- uni.getProvider({
- service: 'oauth', //服务类型 登录授权
- success: function(res) {
- resolve(res.provider[0])
- },
- fail: function() {
- reject('获取服务商失败')
- }
- })
- })
- }
- // 获取code
- const getCode = provider => {
- return new Promise((resolve, reject) => {
- if (!provider) {
- reject('获取缺少provider参数')
- }
- uni.login({
- provider: provider,
- success: function(loginRes) {
- if (loginRes && loginRes.code) {
- resolve(loginRes.code)
- } else {
- reject('获取code失败')
- uni.navigateTo({
- url: '/pages/tabBar/index/index'
- })
- }
- },
- fail: function() {
- reject('获取code失败')
- }
- })
- })
- }
- // 是否开启了获取用户名授权 当用户一开始拒绝了 需再次提醒授权
- const getSetting = function() {
- return new Promise((resolve, reject) => {
- // uni.getSetting({
- // success: function(res) {
- // let authSetting = res.authSetting
- // if (authSetting['scope.userInfo']) {
- // resolve(1)
- // return
- // } //授权成功
- // if (authSetting['scope.userInfo'] === false) {
- // resolve(0)
- // return
- // } //拒绝授权
- // resolve(2) //2未操作
- // },
- // fail: function() {
- // reject('获取用户授权失败')
- // }
- // })
- })
- }
- // 获取用户信息
- const getUserInfo = (provider) => {
- return new Promise((resolve, reject) => {
- if (!provider) {
- reject('获取缺少provider参数')
- return
- }
- uni.getUserInfo({
- provider: provider,
- success: (detail) => {
- if (detail.iv != '') {
- resolve(detail)
- } else {
- reject(0) //用户点击拒绝授权
- }
- },
- fail: (error) => {
- reject(0) //如果用户拒绝过授权 直接走fail
- }
- })
- })
- }
- // 获取用户登录状态
- const checkLogin = () => {
- return new Promise((resolve, reject) => {
- uni.checkSession({
- success() {
- resolve(1)
- console.log('登录成功')
- },
- fail(err) {
- reject(0)
- }
- })
- })
- }
- export default {
- getProvider,
- getSetting,
- checkSessionKey,
- getCode,
- login,
- getUserInfo,
- checkLogin
- }
|