123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- //authorize.js
- import api from './caimeiApi.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: api.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/home/home'
- })
- }
- },
- 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
- }
- });
- })
- }
- export default {getProvider,getSetting,checkSessionKey,getCode,login,getUserInfo}
|